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

VB.NET Discussion :

Ajouter click droit datagridview


Sujet :

VB.NET

  1. #1
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut Ajouter click droit datagridview
    Salut à tous,
    Voilà j'aimerais un menu au click droit sur un HeaderColumn d'un Datagridview...

    Quelqu'un pourrait il m'aider car la je me demande si cela est possible surtout sur les headers seulement

    Merci d'avance de vos réponse,
    Echyzen

  2. #2
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    DataGridView.ColumnHeaderMouseClick Event

    Avec l'event e (e As DataGridViewCellMouseEventArgs) tu peux tester si c'est clic droit ou gauche avec e.Buttons, et si c'est clic droit, tu affiches ton menu.

  3. #3
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    Ah ouais tu gères... J'avais pas penser a çà je vais tester et te dis quoi.
    Mais normalement c'est bon

  4. #4
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Ouch, mes chevilles ...

  5. #5
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    XD

    J'ai un léger soucis, je veux en faite faire au click droit le menu sa c'est bon mais je propose "Supprimer" et je voudrais que cela supprime la Column sur lequel le HeaderColumn a eu lieu... Et la sa coince je ne sais pas comment récupérer le CurrentColumn

  6. #6
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Le sender de ton event n'est pas ta "currentColumn" ?

  7. #7
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    Voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
               Public Sub DGV_ColumnHeaderMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.ColumnHeaderMouseClick
     
     If e.Button = MouseButtons.Right Then
                'Affiche ContextmenuStrip fonctionnel
                DGV.ContextMenuStrip = ContextMenuStrip1
                ContextMenuStrip1.Show(Me, New Point(e.X + 50, e.Y))
     
            End If
     
        End Sub
     
        Private Sub SupprimerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupprimerToolStripMenuItem.Click
            NbColumn = NbColumn - 1
            'DGV.Columns.Remove()
        End Sub
    La après avoir cliqué j'ai une fonction pour gerer le supprimer mais du coup je perds ma column tu comprends?

  8. #8
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Dans cette partie du code tu peux connaître le numéro de colonne
    Citation Envoyé par Echyzen Voir le message
    Voila le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
       Public Sub DGV_ColumnHeaderMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.ColumnHeaderMouseClick
           If e.Button = MouseButtons.Right Then
                'Affiche ContextmenuStrip fonctionnel
                DGV.ContextMenuStrip = ContextMenuStrip1
                ContextMenuStrip1.Show(Me, New Point(e.X + 50, e.Y))
            End If
        End Sub
     ...
    c'est e.ColumnIndex .

    A+, Hervé.
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  9. #9
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    Bah je sais bien mais moi c'est justement d'arriver a le transmettre dans l'autre partie le problème XD

  10. #10
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Et en stockant ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        Dim columnIndexToDelete As Integer
     
        Public Sub DGV_ColumnHeaderMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DGV.ColumnHeaderMouseClick
     
            If e.Button = MouseButtons.Right Then
                'Affiche ContextmenuStrip fonctionnel
                DGV.ContextMenuStrip = ContextMenuStrip1
                ContextMenuStrip1.Show(Me, New Point(e.X + 50, e.Y))
                columnIndexToDelete = e.ColumnIndex
            End If
     
        End Sub
     
        Private Sub SupprimerToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SupprimerToolStripMenuItem.Click
            NbColumn = NbColumn - 1
            DGV.Columns(columnIndexToDelete).Remove()
        End Sub

  11. #11
    Membre confirmé Avatar de Echyzen
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2012
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2012
    Messages : 123
    Par défaut
    Yep comme ceci cela marche mais bon sa m’embête d'avoir une autre variable global a se traîner. Sa fait pas très propre niveau code...

    Après, s'il y a pas mieux tan pis...

  12. #12
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Tu peux faire ton propre ContextMenuStrip et y ajouter une property IndexColumnDelete, elle sera stocké dans ton Control.

    Tu peux aussi faire ton gestionnaire d'event pour raise un event qui t'es propre avec les paramètres que tu souhaites.

    Il doit y avoir une solution autre que ces 2 là, ou par une variable globale, mais elle ne me saute pas aux yeux pour le moment.

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Outre les solutions proposé par _Ez3kiel, tu peux créer une propriété sur ta Form qui stocke le numéro de ligne du DGV cliqué. (pourra servir pour différent traitement de ligne du DGV).

    Une propriété sert à stocker les données interne d'un objet. (en l'occurence pour ta Form) Ainsi cela correspond à l'esprit objet.
    Dans ton cas ce sera d'une propriété privé. (correspond au dim dans la Form)
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  14. #14
    Membre Expert Avatar de _Ez3kiel
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2013
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Janvier 2013
    Messages : 836
    Par défaut
    Je privilégie la solution de rv26t, c'est plus propre, et moins lourd.

Discussions similaires

  1. [Débutant] Suppression Row dans une DataGridView avec click droit
    Par didou038 dans le forum VB.NET
    Réponses: 2
    Dernier message: 24/01/2015, 17h37
  2. Ajouter programme dans click-droit
    Par luchoadvance dans le forum Débuter
    Réponses: 4
    Dernier message: 26/08/2007, 19h08
  3. [C#][DataGridView]Comment selectionner ligne sur Click Droit ?
    Par VincenzoR dans le forum Windows Forms
    Réponses: 12
    Dernier message: 23/12/2005, 22h34
  4. besoin d aide evenement click droit
    Par yuvino dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/12/2004, 10h32
  5. [JSP][Javascript] click droit sur un lien
    Par Stessy dans le forum Servlets/JSP
    Réponses: 22
    Dernier message: 24/09/2004, 10h14

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