Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
Associe un événement à un gestionnaire d’événements au moment de l’exécution.
Syntaxe
AddHandler event, {AddressOf eventhandler | expression }
Pièces
| Composant | Descriptif |
|---|---|
event |
Nom de l’événement à gérer. |
eventhandler |
Nom d’une procédure qui gère l’événement. |
expression |
Expression lambda qui gère l’événement. |
Les parties AddressOf eventhandler et expression s’excluent mutuellement.
Remarques
Les AddHandler instructions RemoveHandler vous permettent de démarrer et d’arrêter la gestion des événements à tout moment pendant l’exécution du programme.
La signature du nouveau gestionnaire d’événements (la eventhandler procédure ou l’expression expression lambda) doit correspondre à la signature de l’événement event.
Le Handles mot clé et l’instruction AddHandler vous permettent de spécifier que des procédures particulières gèrent des événements particuliers, mais il existe des différences. L’instruction AddHandler connecte des procédures aux événements au moment de l’exécution. Utilisez le mot clé lors de la Handles définition d’une procédure pour spécifier qu’elle gère un événement particulier. Pour plus d’informations, consultez Handles.
Un gestionnaire ajouté avec une lambda explicite NE PEUT PAS être supprimé ultérieurement (à l’aide RemoveHandlerde ). En effet, si l’expression lambda n’est pas nommée, il n’est pas possible de la référencer ultérieurement. Toutefois, l’affectation de l’lambda à une variable et l’ajout du gestionnaire via cette variable permet de supprimer le gestionnaire à l’aide de cette variable.
Remarque
Pour les événements personnalisés, l’instruction AddHandler appelle l’accesseur de l’événement AddHandler . Pour plus d’informations sur les événements personnalisés, consultez l’instruction Event.
Exemple :
L’exemple suivant montre comment utiliser AddHandler avec ConvertEventHandler des délégués pour les scénarios de liaison de données. Cet exemple montre un cas d’usage pratique dans lequel les gestionnaires d’événements sont attachés et FormatParse les événements d’un Binding objet à convertir entre les valeurs décimales et les chaînes monétaires.
Public Class DataBindingExample
Private textBox1 As TextBox
Private ds As DataSet
Public Sub New()
textBox1 = New TextBox()
ds = New DataSet()
SetupSampleData()
BindControlWithAddHandler()
End Sub
Private Sub SetupSampleData()
Dim table As New DataTable("Orders")
table.Columns.Add("OrderAmount", GetType(Decimal))
table.Rows.Add(123.45D)
table.Rows.Add(67.89D)
ds.Tables.Add(table)
End Sub
Private Sub BindControlWithAddHandler()
Dim binding As New Binding("Text", ds, "Orders.OrderAmount")
' Use AddHandler to associate ConvertEventHandler delegates
AddHandler binding.Format, AddressOf DecimalToCurrency
AddHandler binding.Parse, AddressOf CurrencyToDecimal
textBox1.DataBindings.Add(binding)
End Sub
Private Sub DecimalToCurrency(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(String) Then
Return
End If
e.Value = CDec(e.Value).ToString("c")
End Sub
Private Sub CurrencyToDecimal(ByVal sender As Object, ByVal e As ConvertEventArgs)
If e.DesiredType IsNot GetType(Decimal) Then
Return
End If
e.Value = Convert.ToDecimal(e.Value.ToString())
End Sub
End Class
' Simple example for basic AddHandler usage
Sub TestBasicEvents()
Dim Obj As New Class1
AddHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
RemoveHandler Obj.Ev_Event, AddressOf EventHandler
Obj.CauseSomeEvent()
' Lambda expression example
AddHandler Obj.Ev_Event, Sub ()
MsgBox("Lambda caught event.")
End Sub
Obj.CauseSomeEvent()
End Sub
Sub EventHandler()
MsgBox("EventHandler caught event.")
End Sub
Public Class Class1
Public Event Ev_Event()
Sub CauseSomeEvent()
RaiseEvent Ev_Event()
End Sub
End Class
Cet exemple montre :
- Création d’un
Bindingobjet pour la liaison de données. - Utilisation
AddHandlerpour attacherConvertEventHandlerdes délégués aux événements etParseauxFormatévénements. - Implémentation de méthodes de gestionnaire d’événements qui convertissent entre les formats de chaîne décimale et monétaire.
- Utilisation de base
AddHandleravec des événements personnalisés et des expressions lambda.