Felder mit Varialben verknüpfen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Tukuan.

    Felder mit Varialben verknüpfen

    Hallo Forum,

    ich habe leider noch keine elegante Lösung gefunden... Vielleicht wißt ihr Rat.

    Ich habe eine Klasse erstellt, die hauptsächlich Variablen enthält.
    Zu den meisten Variablen gehört ein Textfeld in einem Formular.

    Gibt es eine elegante Möglichkeit bei jeder Änderung der Variable das dazugehörige Textfeld zu ändern.
    Ähnlich zu der Funktion TextChanged für Textboxen?

    Ich dachte erst an die Property Anweisung.
    Allerdings kann ich der - so wie es scheint - kein Feldzuweisen.

    Quellcode

    1. Private sTest As String
    2. Public Property Proberty_sTest As String
    3. Dim x As TextBox
    4. Get
    5. Return sTest
    6. End Get
    7. Set(ByVal s As String)
    8. If sTest <> s Then
    9. sTest = s
    10. x.Text = s
    11. End If
    12. End Set
    13. End Property

    ...funktioniert leider nicht.

    Hab auch schon gehört, einen Timer zu verwenden, der die Textboxen immer aktualisiert. Finde ich aber nicht so schön...

    Hat jemand ne Idee?
    Vielen Dank im Voraus
    Gruß
    Tukuan
    Sieh Dir mal

    VB.NET-Quellcode

    1. DataSource
    2. SetDataBinding

    und das Umfeld dazu an.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    INotifyPropertyChanged

    INotifyPropertyChanged klingt gut. Kannte ich noch nicht...
    Dann wirft das System also beim Ändern einer Variable einen Handl, dem ich dann in dem Formular abfangen kann...
    Danke.

    Gruß
    Tukuan

    PS: Deine Lösung RodFromGermany werd ich mir auch noch mal anschauen...

    VB.NET-Quellcode

    1. Private sTest As String
    2. Public Property Proberty_sTest As String
    3. Get
    4. Return sTest
    5. End Get
    6. Set(ByVal s As String)
    7. If sTest <> s Then
    8. sTest = s
    9. x.Text = s 'diese Textbox (--> x) sollte schon auf deiner Form existieren
    10. End If
    11. End Set
    12. End Property

    Der Code aus deinem ersten Beitrag sieht auch nicht soo falsch aus. Du greifst halt nur auf eine Textbox zu, die du kurz vorher definiert hast, die aber auf deiner Form nicht existiert.
    Ich habe die Definition "dim x as textbox" hier entfernt. Es sollte auf deiner Form eine Textbox namens "X" geben, dann klappt es auch.
    Du kannst auch nach Zeile 7 einen eigenen Event abfeuern, den du vorher deklariert hast (z.B. RaiseEvent MeineVariableHatSichGeändert)

    Textbox übergeben/zuweisen

    Moin der_Kurt,

    ich wollte der Textbox-Variablen x in der Property die Textbox aus dem Form übergeben.
    Ist vielleicht komisch gedacht, aber ich wollte das ganze als Klasse für eine Variable aufbauen, die den Wert einer Textbox ändern kann.

    Gruß
    Tukuan