|
Dieser Artikel wurde maschinell übersetzt. Bewegen Sie den Mauszeiger über die Sätze im Artikel, um den Originaltext anzuzeigen. Weitere Informationen
|
Übersetzung
Original
|
Exemplarische Vorgehensweise: Behandeln von Ereignissen (Visual Basic)
So verarbeiten Sie das PercentDone-Ereignis der Widget-Klasse
-
Fügen Sie in Form1 folgenden Code ein: Private WithEvents mWidget As Widget Private mblnCancel As Boolean
Das WithEvents-Schlüsselwort legt fest, dass die Variable mWidget zur Behandlung von Objektereignissen verwendet wird. Sie legen den Objekttyp fest, indem Sie den Namen der Klasse angeben, aus der das Objekt erstellt wird. Die Variable mWidget wird in Form1 deklariert, da WithEvents-Variablen auf Klassenebene definiert werden müssen. Dies gilt unabhängig vom Typ der Klasse, in die sie eingefügt werden. Die mblnCancel-Variable wird verwendet, um die LongTask-Methode abzubrechen.
So behandeln Sie ein Ereignis
-
Wählen Sie mWidget in der linken Dropdownliste des Code-Editors aus. -
Wählen Sie das PercentDone-Ereignis aus der rechten Dropdownliste aus. Der Code-Editor öffnet die mWidget_PercentDone-Ereignisprozedur.
Hinweis
Zum Einfügen neuer Ereignishandler ist der Code-Editor hilfreich, doch nicht erforderlich. In dieser exemplarischen Vorgehensweise werden die Ereignishandler einfach direkt in den Code eingefügt. -
Fügen Sie dem mWidget_PercentDone-Ereignishandler folgenden Code hinzu: Private Sub mWidget_PercentDone( ByVal Percent As Single, ByRef Cancel As Boolean ) Handles mWidget.PercentDone lblPercentDone.Text = CInt(100 * Percent) & "%" My.Application.DoEvents() If mblnCancel Then Cancel = True End Sub
Bei jedem Auslösen des PercentDone-Ereignisses zeigt die Ereignisprozedur den Prozentsatz der bereits erfolgten Verarbeitung in einem Label-Steuerelement an. Die DoEvents-Methode bietet nicht nur die Möglichkeit, die Bezeichnung neu zu zeichnen, sondern ermöglicht es darüber hinaus dem Benutzer, auf die Schaltfläche Abbrechen zu klicken. -
Fügen Sie folgenden Code für den Button2_Click-Ereignishandler hinzu: Private Sub Button2_Click( ByVal sender As Object, ByVal e As System.EventArgs ) Handles Button2.Click mblnCancel = True End Sub
So erstellen Sie ein Objekt und weisen ihm einen Verweis zu
-
Wählen Sie (Form1-Ereignisse) in der linken Dropdownliste des Code-Editors aus. -
Wählen Sie das Load-Ereignis aus der rechten Dropdownliste aus. Der Code-Editor öffnet die Form1_Load-Ereignisprozedur. -
Fügen Sie folgenden Code für die Form1_Load-Ereignisprozedur hinzu, um das Widget zu erstellen: Private Sub Form1_Load( ByVal sender As System.Object, ByVal e As System.EventArgs ) Handles MyBase.Load mWidget = New Widget End Sub
So rufen Sie die LongTask-Methode auf
-
Fügen Sie dem Button1_Click-Ereignishandler folgenden Code hinzu: Private Sub Button1_Click( ByVal sender As Object, ByVal e As System.EventArgs ) Handles Button1.Click mblnCancel = False lblPercentDone.Text = "0%" lblPercentDone.Refresh() mWidget.LongTask(12.2, 0.33) If Not mblnCancel Then lblPercentDone.Text = CStr(100) & "%" End Sub
So führen Sie das Programm aus
-
Drücken Sie F5, um das Projekt auszuführen. -
Klicken Sie auf die Schaltfläche Start Task. Jedes Mal, wenn das PercentDone-Ereignis ausgelöst wird, wird die Bezeichnung mit dem Prozentsatz der Aufgabe, der bereits erledigt wurde, aktualisiert. -
Klicken Sie auf die Cancel-Schaltfläche, um die Aufgabe abzubrechen. Beachten Sie, dass sich das Erscheinungsbild der Cancel-Schaltfläche nicht direkt ändert, wenn Sie darauf klicken. Das Click-Ereignis kann erst eintreten, wenn die My.Application.DoEvents-Anweisung die Ereignisverarbeitung zulässt.
Hinweis
Die My.Application.DoEvents-Methode verarbeitet Ereignisse nicht genau auf die gleiche Weise wie das Formular. In dieser exemplarischen Vorgehensweise müssen Sie z. B. zweimal auf die Schaltfläche Abbrechen klicken. Damit das Formular die Ereignisse direkt behandeln kann, können Sie Multithreading verwenden. Weitere Informationen finden Sie unter Threading (C# und Visual Basic).
So behandeln Sie Ereignisse für ein anderes Widget-Objekt
-
Fügen Sie der Button1_Click-Prozedur die folgende Codezeile direkt vor der Zeile mWidget.LongTask(12.2, 0.33) hinzu: mWidget = New Widget ' Create a new Widget object.
Hinweis
|
|---|
|
|