Treeview double-clic sur treenode [Résolu]

Signaler
Messages postés
8
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
3 mai 2007
-
Messages postés
8
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
3 mai 2007
-
(C topic a deja etait poser dans C#/Windows/UseerControl  par erreur veuillez m'excuser, vous pouvez l'effacer)

Bonjour je debute en C# et j'ai rencontré un problème dans mon stage.
J'ai creé un treeview dans un formulaire et je voudrais que l'on ne puisse pas double cliquer sur les noeuds mais seulement sur les feuilles de l'arbre.
Le double-clik sur les feuille fonctionne parfaitement, je n'arrive juste pas a empecher le double-clic sur les noeuds

Voila j'espere avoir etait assez clair dans ma description
Merci.

2 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
32
Salut la première idée qui me vient c'est de modifier le comportement de la boucle de message du TreeView mais il y a peut être plus simple.. Dis moi si ça te convient :

public class TreeView2 : TreeView
{
    private const int WM_LBUTTONDBLCLK = 0x0203;


    protected override void WndProc( ref Message m )
    {
        if ( m.Msg == WM_LBUTTONDBLCLK )
        {
            MyDoubleClick( );
            m.Result = IntPtr.Zero;
            return;
        }


        base.WndProc( ref m );
    }


    private void MyDoubleClick( )
    {
        MessageBox.Show( "Double Click !" );
    }
}
Messages postés
8
Date d'inscription
jeudi 26 avril 2007
Statut
Membre
Dernière intervention
3 mai 2007

Merci mais j'arrive pas a avoir l'accés à la classe de mon treeview, soit c'est que je suis un boulet ( le plus probable) soit c'est que j'utilise la version professionnel 2003 ( car il y a certain truk qui n'existe pas comme " .Result ").

J'ai tout de meme gratter un peu plus dans les aide qu'il me donne et j'ai trouver une solution qui marche ( cela pourrai aider d'autre personne comme moi qui comprenne rien aux choses compliké XD)

Détails à la compréhension:

"treeview_DoubleClik" est une procédure qui se créer automatiquement quand on double-clic sur le treeview depuis le formulaire qui le contient

" .FirstNode " donne le noeud ou la feuille de l'arbre enfant au noeud sur lequel on se trouve. En faite je me sert de ca pour savoir si il y a quelque chose en dessous du noeud ou je me trouve ( Savoir si c une feuille ).

Code:

private void treeview_DoubleClick(object sender, System.EventArgs e)
{
         TreeNode SelectNode_L = ((Treeview)sender).SelectedNode;
         if (SelectNode_L.FirstNode == null)
         {
                  //Ce que l'on veut que le doubleclick execute si on se trouve sur une feuille
         }
         else
         {
                  //Ce que l'on veut que le doubleclick execute si on se trouve sur un noeud
          }
}

Voila en esperant avoir était assez clair, sinon dite le moi. Encore pour votre aide