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

Windows Forms Discussion :

clique droit de la souris et datagridview


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 44
    Points
    44
    Par défaut clique droit de la souris et datagridview
    Salut tous le monde

    j'ai besoin d'une aide et je vais vous expliquez mon soucis

    je travaille avec une datagridview et j'ai besoin de

    1-comment faire une suppression multiple (sélectionner plusieurs lignes puis les supprimées.)
    2- je doit cliqué sur bouton droit de la souris et je doit avoir devant mes yeux un menu insérer une ligne (Lorsque je cilque sur insérer je doit avoir une ligne vide dans cet emplacement -les autres lignes doit êtres écarter),supprimer une ligne.

    s'il y en a quelqu'un a une idée n'hésite pas a me répondre .

    et Merci d'avance

  2. #2
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Pour la 1ère question tu boucle sur les lignes sélectionnées ensuite tu fait un delete ou removeat.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    For each Drow as DataGridViewRow in TaDataGrid.SelectedRows
     
    TaDataGrid.Rows.Remove(Drow)
     
    Next
    A tester car j'ai peur qu'il se "bash" pour une exception du type la "collection à été modifiée.." enfin à tester...
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Pour pouvoir répondre, il faudrait d'abord s'avoir si tu utilises ton datagridview en mode lié au données (databinding), ou si tu le remplis manuellement... Les réponses ne seront pas les mêmes

    pour un début de réponse à la 2e question, tu peux créer un ContextMenuStrip que tu affectes à la propriété ContextMenuStrip du DGV

    Citation Envoyé par Ogotcha Voir le message
    A tester car j'ai peur qu'il se "bash" pour une exception du type la "collection à été modifiée.." enfin à tester...
    c'est même une quasi-certitude... il faut d'abord copier la liste, de façon à ce que la liste énumérée et la liste modifiée ne soient pas la même. Le plus simple, si c'est du .NET 3.5 ou plus :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each row In dataGridView1.SelectedRows.Cast(Of DataGridViewRow).ToArray()
        dataGridView1.Rows.Remove(row)
    Next

  4. #4
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Je me doutais que ma boucle aussi simpliste générerait une exception... mais le principe était là
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  5. #5
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Concernant les "SelectedRows", je ne suis pas vraiment sur que la sélection soit maintenue si on fait un tri (par exemple en cliquant sur un en-tête de colonne) .

    Si la sélection est conservée, merci de confirmer. Ca me permettrait de simplifier certaines de mes applications.
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par Graffito Voir le message
    Concernant les "SelectedRows", je ne suis pas vraiment sur que la sélection soit maintenue si on fait un tri (par exemple en cliquant sur un en-tête de colonne) .

    Si la sélection est conservée, merci de confirmer. Ca me permettrait de simplifier certaines de mes applications.
    ben t'as pas fait le test ? ça prend quoi, 1/2 seconde ?

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    ben t'as pas fait le test ? ça prend quoi, 1/2 seconde
    Raah, Je me sentais un peu paresseux ce soir.
    Et surtout ... je n'ai pas mon environnement de développement
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    salut à tous le monde
    merci pour vos réponse et Pour ta question :

    Citation Envoyé par tomlev Voir le message
    Pour pouvoir répondre, il faudrait d'abord s'avoir si tu utilises ton datagridview en mode lié au données (databinding), ou si tu le remplis manuellement... Les réponses ne seront pas les mêmes
    mon datagridview n'est pas lié à une source de donnée

    et pour ce code la :
    Citation Envoyé par tomlev Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For Each row In dataGridView1.SelectedRows.Cast(Of DataGridViewRow).ToArray()
        dataGridView1.Rows.Remove(row)
    Next
    j'ai toujours une erreur de convertion

  9. #9
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par mounim_taoufik Voir le message
    mon datagridview n'est pas lié à une source de donnée
    OK
    Donc pour ajouter une ligne et la sélectionner, tu peux faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim index As Integer = dataGridView1.Rows.Add()
    dataGridView1.CurrentRow = dataGridView1.Rows(index)
    Citation Envoyé par mounim_taoufik Voir le message
    j'ai toujours une erreur de convertion
    Bizarre... quel est le message d'erreur complet ?

  10. #10
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    Bonjour
    pour ce code j'ai comme message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim index As Integer = dataGridView1.Rows.Add()
    dataGridView1.CurrentRow = dataGridView1.Rows(index)
    la propriété CurrentRow est en mode lecture seulement - ReadOnly -
    et pour l'autre code j'ai
    Lvaleur de type System.Windows.Forms.Datagridview ne peut pas etre converti en Systeme.Data.DataRow

  11. #11
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par mounim_taoufik Voir le message
    pour ce code j'ai comme message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim index As Integer = dataGridView1.Rows.Add()
    dataGridView1.CurrentRow = dataGridView1.Rows(index)
    la propriété CurrentROw est en mode lecture seulement - ReadOly -
    Ah ok, essaie ça alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim index As Integer = dataGridView1.Rows.Add()
    dataGridView1.CurrentCell = dataGridView1.Rows(index).Cells(0)
    Citation Envoyé par mounim_taoufik Voir le message
    et pour l'autre code j'ai
    Lvaleur de type System.Windows.Forms.Datagridview ne peut pas etre converti en Systeme.Data.DataRow

    tu es sûr que tu as bien recopié le code que je t'ai donné ?
    parce que cette erreur n'a aucun sens par rapport à mon code... à quel ligne exactement elle se produit ?

  12. #12
    Membre du Club
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 86
    Points : 44
    Points
    44
    Par défaut
    ok j'ai toujours la même chose pour les deux truc

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim index As Integer = dataGridView1.Rows.Add()
    dataGridView1.CurrentCell = dataGridView1.Rows(index).Cells(0)
    la propriété currencell est ReadOnly

    tu es sûr que tu as bien recopié le code que je t'ai donné ?
    parce que cette erreur n'a aucun sens par rapport à mon code... à quel ligne exactement elle se produit ?

    il me souligne sur le code de for
    impossible de faire une conversion de datagridviewrow au datarow

  13. #13
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par mounim_taoufik Voir le message
    la propriété currencell est ReadOnly
    il est pourtant clair que ce n'est pas le cas
    http://msdn.microsoft.com/en-us/libr...rrentcell.aspx

    Je viens de tester les 2 extraits de code que je t'ai donnés, et ils marchent très bien tous les 2... tu es sûr que c'est bien un DataGridView que tu utilises ? Ce serait pas un contrôle d'une librairie commerciale ?

Discussions similaires

  1. interdir le clique droit de la souris sur un champ
    Par john_wili dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/08/2009, 16h04
  2. Simuler le clique droit de la souris
    Par Barbidure dans le forum AWT/Swing
    Réponses: 14
    Dernier message: 16/01/2009, 17h14
  3. Clique droit de la souris VB.Net 2005
    Par badrel dans le forum Windows Forms
    Réponses: 2
    Dernier message: 16/01/2009, 17h07
  4. [swing]Probleme avec clique droit de la souris
    Par issou dans le forum AWT/Swing
    Réponses: 17
    Dernier message: 22/03/2006, 17h25
  5. Ajout de menu perso sur clique droit de la souris !!
    Par Kyp dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 09/12/2005, 17h06

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