Ereignisse wie TextChanged, SelectedIndexChanged usw. unterdrücken

  • VB.NET

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von AliBaba.

    Ereignisse wie TextChanged, SelectedIndexChanged usw. unterdrücken

    Es ist schon wieder fast zwei Jahre her, dass ich wieder mit VB etwas programmier. Ich verwende momentan Visual Basic 2008 Express Edition.

    Beim Laden der Form schreibe ich etwas in einen TextBox bzw. setze ComboBox auf einen bestimmten Eintrag.
    Da aber im weitern Programm die Ereignisse wie TextChanged, SelectedIndexChanged programmiert sind, reagiert das Programm natürlich entsprechend (wahrscheinlich schon beim Laden der Form. Da bin ich mir aber nicht sicher.). Das stört mich immer wieder.

    Kann man diese Ereignisse zeitweise unterdrücken, zumindest beim Laden der Form?

    In meinen alten Büchern (über VB 2005) habe ich keinen Hinweis gefunden. Die Suche im Forum mit dem Stichwort "Ereignisse unterdrücken" ergab keine Ergebnisse.

    Gruss
    Sowas ist mir auch oft untergekommen und ich habe es damals auch wie singu beschrieben hat gelöst, aber ich denke wenn es nicht zu viele Handler sind die du unterdrücken möchtest wäre die Lösung von lordknoblauch professioneller und gerade weil es noch nicht weiß eine gute Übung, zumal es überhaupt nicht schwer ist, hier mal ein Beispiel:

    VB.NET-Quellcode

    1. Public Class Form1
    2. Public Sub Form_Load(...) Handles Me.Load
    3. Textbox1.Text = "Text zuweisen"
    4. AddHandler TextBox1.TextChange, AddressOf Textbox1_TextChange
    5. End Sub
    6. Public Sub Textbox1_TextChange(...) ' normal würde hier noch "Handles Textbox1.TextChange" stehen dies einfach löschen
    7. MessageBox.Show("Der Text hat sich geändert")
    8. End Sub
    9. End Class


    AddHandler is ganz einfach, als erster Parameter wird das Event von dem Control genannt in diesem Fall Textbox1 und das Event TextChange, als zweiter Parameter wird die Adresse der Routine angegeben die bei diesem Event ausgeführt werden soll, also einfach AdressOf und dann den Namen der Subroutine in diesem Fall Textbox1_TextChange.
    Wo momentan in den Klammern "..." steht habe ich aus Faulheit rausgelassen normal steht da dieses sender as Object und e as EventAgrs.
    Hallo dodo.
    Zwar habe ich deine Zuschrift etwas zu spät gesehen... Aber trotzdem Dankeschön.
    Singu hat zwar vorgeschlagen, aber ich hatte es nicht verstanden. Mit deinem Beispiel wurde es dann für mich vertändlich.
    Ich habe es jetzt ausprobiert.
    Ja genau das ist es was ich gebraucht hatte.
    Vielen Dank noch Mal.

    Gruss