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
14930
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
26 mai 2022
161
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