Evenement personnel

Résolu
philposer Messages postés 18 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 10 octobre 2012 - 12 juil. 2011 à 22:28
philposer Messages postés 18 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 10 octobre 2012 - 13 juil. 2011 à 15:16
Bonsoir à tous,

Une fois de plus lors d'un apprentissage, l'aide des ainés est nécessaires (heureusement qu'on vous a). Bon je vous explique mon problème.

Je viens de me créer un control utilisateur qui contient un treeview et d'autre élement. J'aurais souhaité qu'il possède un événement propre que je pourrais récupérer dans la form ou il ce trouve lorsque le noeud selectionné change.

Malgré mes multiples essais avec un "PropertyChangedEventHandler". malheureusement tout les exemple trouvé sur msdn montre un constructeur private qui n'est pas accepté. J'ai évidement essayé avec le constructeur en public mais ca me crée pas mal de problèmes.

Ou pourrais-je trouver des info ou contourner le problème? Merci pour votre aide

4 réponses

foliv57 Messages postés 420 Date d'inscription vendredi 17 novembre 2006 Statut Membre Dernière intervention 15 juillet 2014 9
13 juil. 2011 à 09:56
Bonjour,

Il est aussi possible, si vous ne voulez pas que l'accès au treeview soit public, d'ajouter un evenement "SelectedNodeChanged" à votre usercontrol qui retransmettra l'evenement AfterSelect du treeview.

Pour le usercontrol :
Public Class UserControl1

    Public Event SelectedNodeChanged As EventHandler(Of TreeViewEventArgs)

    Private Sub TreeView1_AfterSelect(sender As System.Object, _
            e As TreeViewEventArgs) Handles TreeView1.AfterSelect

        RaiseEvent SelectedNodeChanged(Me, e)

    End Sub

End Class


Dans la form qui contient le usercontrol :
Public Class Form1

    Private Sub UserControl11_SelectedNodeChanged(sender As Object, e As TreeViewEventArgs) _
        Handles UserControl11.SelectedNodeChanged

        Console.WriteLine("SelectedNodeChanged : Node = {0}", e.Node.Text)

    End Sub

End Class
3
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
12 juil. 2011 à 23:18
Bonjour,

Tu cherches quoi exactement ?
- Créer un evenement ? (mot clé Event)
- Réveillé un evenement que tu as créé ? (RaiseEvent)
- T'abonner à un evenement ? (Addhandler et Handles)
- Autre ? (préciser)

Mon site
0
Utilisateur anonyme
13 juil. 2011 à 00:01
Bonsoir,

Tu peux ajouter facilement un gestionnaire d'événement à n'importe quel composant de ton UserControl de cette façon :
Public Class Form1
    Dim uc As New UserControl1

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        Me.Controls.Add(uc)
        AddHandler uc.TreeView1.AfterSelect, AddressOf Treeview1_AfterSelect
    End Sub

    Private Sub Treeview1_AfterSelect(ByVal sender As Object, ByVal e As TreeViewEventArgs)
        MessageBox.Show(e.Node.Text)
    End Sub
End Class

Bonne soirée.
0
philposer Messages postés 18 Date d'inscription samedi 12 février 2005 Statut Membre Dernière intervention 10 octobre 2012
13 juil. 2011 à 15:16
Exactement ce que je souhaitais faire.... Merci beaucoup
0
Rejoignez-nous