J'ai un UserControl1
(dans lequel j'ai un Label1
) dans Form1
. Je veux attraper l'événement MouseDown
de Label et l'envoyer comme il était de UserControl.rediriger un événement dans VB.NET
je fais:
Public Class UserControl1
Shadows Custom Event MouseDown As MouseEventHandler
AddHandler(ByVal value As MouseEventHandler)
AddHandler Label1.MouseDown, value
End AddHandler
RemoveHandler(ByVal value As MouseEventHandler)
RemoveHandler Label1.MouseDown, value
End RemoveHandler
RaiseEvent(ByVal sender As Object, ByVal e As MouseEventArgs)
'RaiseMouseEvent(Me, e) ??? '
End RaiseEvent
End Event
End Class
Cependant, quand je mets dans le Form1 UserControl
Private Sub UserControl11_MouseDown(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.MouseEventArgs) _
Handles UserControl11.MouseDown
' here I have "Label", BUT want "UserControl" '
MessageBox.Show(sender.GetType.Name)
End Sub
Un détail .. Je veux que l'événement devrait être que sur l'étiquette, non sur l'ensemble de userControl.
hmm. Un détail .. Je veux que l'événement devrait être ** seulement sur l'étiquette **, pas sur l'ensemble du contrôle utilisateur – serhio
@serhio: ah. C'est un problème. Mais 'OnMouseDown' est' Overridable' donc vous pouvez fournir votre propre version qui teste un drapeau pour voir d'où l'événement provient. Voir la mise à jour –
est-il un moyen de faire la même chose avec la méthode que j'ai commencé? – serhio