string zu Objekt name?

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Fritz-albert.

    string zu Objekt name?

    Folgendes Problem:

    ich habe einen string der einen Objekt-namen enthält. dieser string wird in eine funktion übergeben.
    diese funktion soll dann etwas mit dem Objekt dessen namen der string enthält machen.

    nochmal damit es ein wenig verständlicher ist:

    VB.NET-Quellcode

    1. Public Function text_ändern (byVal Name as string)
    2. Object(test).text = "was auch immer"
    3. return true
    4. End Function


    aber wie stell ich das jetzt wirklich an?!

    habe schon gegooglet wie nen pfosten! Bin aber nicht weiter gekommen.
    das darf doch nicht so schwer sein, oder lässt sich so was in vb nicht machen?
    Ich glaube eher er meint, er übergibt einen Namen als String, dann soll als Key dieser Name im Object verwendet werden.

    Dafür würde ich dir zu einer HashTable oder Dictionary

    VB.NET-Quellcode

    1. Dim ht As New HashTable
    2. ht.Add("test", Textbox1)
    3. ht.Add("bla", Lable1)
    4. private sub aendern(Name As String)
    5. Dim c As Control = DirectCast(ht(Name), Control)
    6. c.Text = "Neuer Text"
    7. end sub


    sowas z.B.
    Wieder ein Post bei dem sich jeder ein anderes Problem vorstellen kann :)

    Wenn Du generell ein Objekt nur mit einem vorgegebenen Namen ermitteln willt, geht das nur mit Reflection, was aber nicht ganz einfach ist da dieser ja in den verschiedenen Blöcken und Klassen mehrfach vorkommen kann.

    Wenn es sich um ein Control handelt, und Du weisst in welchem Container (in einer Form, Panel, Gruppe)... es sich befindet kannst Du es über die Controls Collection ermitteln, z.B. control=Form1.Controls(name").

    Edit: warum wird bei Dir ur der Objekt-Name übergeben und nicht gleich das ganze Objekt ?

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Kangaroo“ ()

    jvbsl schrieb:

    meinst du etwa Me.Controls(Name).Eigenschaft = Wert...je nach Eigenschaft musst du mit DirectCast/CType konvertieren...


    genau das habe ich gemeint.

    war vieleicht ein wenig dumm von mir ausgedrückt. ;)

    DANKE!

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Fritz-albert“ ()