Die Community zu .NET und Classic VB.
Menü

VB.NET-Tipp 0020: Die Verwendung von AddHandler

 von 

Beschreibung

Dieses Beispiel zeigt die Verwendung des VB-Schlüsselworts AddHandler, mit dem einem Ereignis eine Funktion zugewiesen werden kann.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Framework-Version(en):

.NET Framework 1.0, .NET Framework 1.1, .NET Framework 2.0, .NET Framework 3.0, .NET Framework 3.5

.NET-Version(en):

Visual Basic 2002, Visual Basic 2003, Visual Basic 2005, Visual Basic 2008

Download:

Download des Beispielprojektes [3,1 KB]

' Dieser Quellcode stammt von http://www.activevb.de
' und kann frei verwendet werden. Für eventuelle Schäden
' wird nicht gehaftet.

' Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
' Ansonsten viel Spaß und Erfolg mit diesem Source!

' Projektversion:   Visual Studio 2002/2003
' Option Strict:    An
' Option Explicit:  An
'
' Referenzen: 
'  - System
'  - System.Drawing
'  - System.Windows.Forms
'

' ##############################################################################
' ################################ MainForm.vb #################################
' ##############################################################################
Option Explicit On 
Option Strict On
Option Compare Binary

Imports System
Imports System.Windows.Forms

' <remarks>
'   Hauptformular der Anwendung.
' </remarks>
Public Class MainForm
    Inherits System.Windows.Forms.Form


    Private Sub MainForm_Load( _
      ByVal sender As Object, _
      ByVal e As System.EventArgs) _
      Handles MyBase.Load
        Dim i As Integer
        For i = 1 To 20
            lstListBox.Items.Add("Element Nummer " & _
              i.ToString())
        Next i

        ' Hinzufügen der Handler zu den einzelnen 
        ' Steuerelementen; zur Demonstration definieren wir einen
        ' gemeinsamen Handler, der von allen Steuerelementen 
        ' für entsprechende Ereignisse benutzt wird.
        AddHandler Me.btnButton.Click, AddressOf MultiEvent
        AddHandler Me.lstListBox.Click, AddressOf MultiEvent
        AddHandler Me.chkCheckBox.CheckStateChanged, AddressOf MultiEvent
    End Sub

    Private Sub MultiEvent( _
      ByVal sender As Object, _
      ByVal e As EventArgs)

        ' Ermitteln, zu welchem Steuerelement das Ereignis 
        ' gehört und Erstellen einer entsprechenden Meldung.
        Dim s As String
        Select Case True
            Case sender Is Me.btnButton
                s = "Der Button wurde geklickt!"
            Case sender Is Me.lstListBox
                s = "Das Element mit dem Titel """ & _
                  Convert.ToString(DirectCast(sender, ListBox).SelectedItem) & _
                  """ wurde aus der ListBox gewählt!"
            Case sender Is Me.chkCheckBox
                s = "Der Status der CheckBox wurde verändert!"
        End Select
        MessageBox.Show(s, "Ereignis ausgelöst")
    End Sub

    Private Sub MainForm_Closing( _
      ByVal sender As Object, _
      ByVal e As System.ComponentModel.CancelEventArgs) _
      Handles MyBase.Closing
        RemoveHandler Me.btnButton.Click, AddressOf MultiEvent
        RemoveHandler Me.lstListBox.Click, AddressOf MultiEvent
        RemoveHandler Me.chkCheckBox.CheckStateChanged, AddressOf MultiEvent
    End Sub
End Class

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 1 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von katzenhut am 10.09.2010 um 01:39

yay! Go AddHandler!!