TextChanged für alle Textbox einer Form zentral erkennen

  • VB.NET

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von sati.

    TextChanged für alle Textbox einer Form zentral erkennen

    Hallo,

    ich habe auf einer Form ca. 100 Textboxen und möchten bei Änderung von einem Inhalt (Textbox.Text) dies Zentral erkennen - zur weiteren Auswertung bzw. zum Erkennen, dass die Werte gespeichert werden müssen.

    Nun meine Frage: wie kann ich dies zentral erkennen.

    Danke für Info
    Hi sati,

    nein, das meinste er nicht.
    Am besten du durchläufst alle Textboxen mit einer Schleife

    VB.NET-Quellcode

    1. For Each a as Control in Me.Control

    fragst dann mit "Is TypeOf" ab, obs ne Textbox ist, und fügst mit AddHandler das Ereignis hinzu

    vG,
    Lupus
    Also so:

    VB.NET-Quellcode

    1. For each a as control in Me.Control
    2. if typeof(a) = TextBox
    3. Dim TBox as TextBox = ctype(a, TextBox)
    4. TBox.AddHandler, Address of TextBoxTextChanged
    5. End ifd
    6. Next
    7. Private Sub TextBoxTextChanged(Byval sender as object, byval e as system.eventargs)
    8. 'Der Wert einer TextBox wurde geändert
    9. End Sub


    So ungefähr müsste es gehen, hab es aber noch nicht getestet oder so. :whistling:
    lass ihn doch ma selbst ausprobieren ;)
    das wird so nicht funktionieren, ich erlaube mir mal ein bisschen zu verbessern:

    VB.NET-Quellcode

    1. For Each a As Control In Me.Controls
    2. If TypeOf (a) Is TextBox Then
    3. Dim TBox As TextBox = CType(a, TextBox)
    4. AddHandler TBox.TextChanged, AddressOf TextBoxTextChanged
    5. End If
    6. Next

    Der Teil muss dann übrigens ins Load-Ereignis von der Form
    Hallo,

    Danke für die Vorschläge!

    ich habe den "For Each a As ......" von Lupus nicht im Load sondern nach

    Me.TabPageAuswertung.Controls.Add(RAM_Auswertung(i, ii))

    Hierbei wird das TextBox array erstellt - in Summe ca. 100 TextBoxen - aufgeteilt in zwei TabPage auf meinem Form.

    Jetzt ist es so, dass mir das Prog nicht in die Sub TextBoxTextChanged springt. ?(

    ?? Bitte nochmals um Unterstützung
    wenn du die Textboxen in einem Array erstellst, würde ich an deiner Stelle direkt den Event-Handler hinzufügen, also wenn du sie erstellst.
    Etwa so:

    VB.NET-Quellcode

    1. AddHandler deinebox(index).TextChanged, AddressOf...