Treeview double-clic sur treenode

Résolu
zonzoncsharp Messages postés 8 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 3 mai 2007 - 26 avril 2007 à 15:15
zonzoncsharp Messages postés 8 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 3 mai 2007 - 27 avril 2007 à 10:58
(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

Lutinore Messages postés 3246 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 27 octobre 2012 41
27 avril 2007 à 06:36
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 !" );
    }
}
3
zonzoncsharp Messages postés 8 Date d'inscription jeudi 26 avril 2007 Statut Membre Dernière intervention 3 mai 2007
27 avril 2007 à 10:58
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
0
Rejoignez-nous