IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

ContextMenuStrip sur un TreeView


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut ContextMenuStrip sur un TreeView
    Hello,
    J'ai construit un ContextMenuStrip pour un TreeView mais le clique droit n'affiche pas le menu ?
    J'ai voulu qu'il s'affiche uniquement lorsqu'on clique droit sur un dossier.
    Alors j'ai géré l'évènement avec un NodeMouseClick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    private void FoldersView_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
    {
            if (e.Button == MouseButtons.Right)
            {
                    this.FoldersView.SelectedNode = e.Node;
                    this.contextMenuStrip2.Show(this.FoldersView, e.Location);
            }
    }
    Voici aussi le opening du ContextMenuStrip qui agit sur le TreeView :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void contextMenuStrip2_Opening(object sender, CancelEventArgs e)
    {
            e.Cancel = FoldersView.SelectedNode != null;
    }
    Je vois pas où j'ai pu me planter ?

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void treeview_MouseUp(object sender, MouseEventArgs e)
        {
          if (e.Button == MouseButtons.Right)
          {
            if (sender is TreeView)
            {
              treeviewContextMenu.Show((sender as TreeView).SelectedNode, Cursor.Position);
            }
          }
        }

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    125
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Avril 2010
    Messages : 125
    Par défaut
    Finalement ça marche comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    private void TreeView1_MouseDown(object sender, MouseEventArgs e)
    {
            if (e.Button == MouseButtons.Right)
            {
                    this.TreeView1.SelectedNode = this.TreeView1.GetNodeAt(e.X, e.Y);
            }
    }
     
    private void contextMenuStrip2_Opening(object sender, CancelEventArgs e)
    {
            e.Cancel = TreeView1.SelectedNode == null;
    }
    Dans mon cas l'évènement MouseUp remplit une ListView, dans ce cas suis-je obligé d'utiliser l'évènement MouseDown sur le TreeView ?

Discussions similaires

  1. [C#] Petit soucis sur un TreeView ...
    Par hobotalker dans le forum Windows Forms
    Réponses: 8
    Dernier message: 29/11/2005, 15h33
  2. Questions sur le Treeview
    Par ZbergK dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 20/11/2005, 09h40
  3. focus sur un TreeView
    Par steph_1 dans le forum Composants VCL
    Réponses: 3
    Dernier message: 07/11/2005, 13h50
  4. [C#] Clic droit sur un TreeView
    Par whilecoyote dans le forum Windows Forms
    Réponses: 5
    Dernier message: 17/03/2005, 15h03

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo