AddressOf avec le paramètre
D'une manière ou d'une autre j'ai besoin de lien groupID (et d'un autre nombre entier) pour le bouton, je suis l'ajout dynamique.. des idées?
Ce que je peux faire;
AddHandler mybutton.Click, AddressOf PrintMessage
Private Sub PrintMessage(ByVal sender As System.Object, ByVal e As System.EventArgs)
MessageBox.Show("Dynamic event happened!")
End Sub
Ce que je ne peux pas faire, mais que vous voulez;
AddHandler mybutton.Click, AddressOf PrintMessage(groupID)
Private Sub PrintMessage(ByVal groupID as Integer)
MessageBox.Show("Dynamic event happened!" & groupID .tostring)
End Sub
source d'informationauteur natli
Vous devez vous connecter pour publier un commentaire.
Il n'y a aucun moyen de le faire avec
AddressOf
lui-même. Ce que vous cherchez est une expression lambda.Vous pouvez créer votre propre bouton de classe et ajouter tout ce que vous voulez, il
Vous pouvez accéder au bouton par un moulage de la
sender
Ces nouvelles propriétés peuvent même être défini dans les propriétés de la fenêtre (sous
Misc
).Les contrôles définis dans le projet en cours s'affichent automatiquement dans la boîte à outils.
L'utilisation de la Balise de propriété du bouton.
AddressOf obtient l'adresse d'une méthode, et donc vous ne pouvez pas vous passer des paramètres.
Il ya quelques façons de le faire en fonction de la complexité et le nombre de paramètres requis.
1. L'utilisation de la Balise pour l'ajout d'une structure complexe
2. Hériter de la classe de Bouton et ajouter les valeurs que les membres de la classe, puis les remplir avant de l'utiliser. Qui vous donne beaucoup plus de flexibilité.
Si vous utilisez la version web
3. Vous ne pouvez pas l'ajouter à la Balise, mais pour de simples valeurs de l'attribuer à l'indice d'utilisation .Les attributs.Add("nom"). Cela s'ajoute à les balises HTML et non du côté Serveur. Vous pouvez ensuite utiliser l'index pour accéder à un serveur côté de la structure pour les systèmes complexes.
4. Des sessions d'utilisation de stocker des valeurs et de stocker la session de référence à l'attribut de Nom comme décrit ci-dessus (#3).
Vous pouvez utiliser les délégués qui très clair pour votre code de suivi:
Définir un délégué
Bouton personnalisé de classe
MainForm
Ci-dessous a fonctionné pour moi: