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 :

[c#]Sélectionner la ligne d'un datagrid sur click souris (Visual Studio 2005)


Sujet :

Windows Forms

  1. #1
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut [c#]Sélectionner la ligne d'un datagrid sur click souris (Visual Studio 2005)
    Bonjour à tous, j'ai repris le code d'un tutorial pour coder un datagrid et récupéré les données en provenance d'une base mysql. Le datagrid marche, mais je n'arrive pas à faire en sorte de sélectionner une ligne complète, ou même une cellule d'ailleurs. Le code donné dans la FAQ ne marche pas http://faqcsharp.developpez.com/?pag...rid_select_row
    J'obtiens des erreurs :
    - Aucune surcharge pour la méthode 'HitTest' ne prend d'arguments '1'
    - Aucune surcharge pour la méthode 'Select' ne prend d'arguments '1'

    Est-ce que quelqu'un à une idée?

  2. #2
    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
    Bonjour,

    Pour sélectionner une cellule :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyDatagridView.CurrentCell = MyDatagridView.Rows[MyRowindex].Cells[0];
    Pour la ligne complète, j'aimerais bien la soluce.

  3. #3
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyDatagridView.CurrentCell = MyDatagridView.Rows[MyRowindex].ToString();
    avec ca tu devrais selectionner toute ta ligne non?

  4. #4
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    quand tu dit selectionner la ligne c'est visuellement, si oui c'est une option du datagrid, si non désolé de répondre à coté

  5. #5
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    merci pour vos réponses.
    Quand je parle de sélectionner une ligne, c'est grâce à la souris. L'utilisateur clique sur la cellule qui l'interesse et ca sélectionne la ligne complète.

  6. #6
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    ah bah c'est l'option fullRowSelect du datagrid ( me rappel plus le nom de la propété par contre )

  7. #7
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    bah pourtant je l'ai utilisée, mais ca ne fait rien. Enfin si, ca sélectionne la première ligne mais je ne peux pas interagir avec mon datagrid.
    Mon datagrid est créé automatiquement à l'ajout des données:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    myDataGridView.AllowUserToResizeColumns = false;
    myDataGridView.AllowUserToResizeRows = false;
    myDataGridView.BackgroundColor = Color.White;
    myDataGridView.ColumnHeadersVisible = false;
    myDataGridView.GridColor = Color.Black;
    myDataGridView.ReadOnly = false;
    myDataGridView.RowHeadersVisible = false;
    myDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    myDataGridView.MultiSelect = true;                myDataGridView.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

  8. #8
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    euh qu'est ce que tu entend par "interagir" ?
    Tu veux selectionner une valeur ? ou autre ?

  9. #9
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    En fait j'ai deux panels. Sur le panel de gauche, j'ai une liste d'objets dont je récupère le nom via la base de données. Sur le panel de gauche, j'ai une liste de caractéristiques représentant chaque objet. Ce que je veux faire, lors d'un click avec la souris sur un des noms d'objet du panel gauche, c'est mettre à jour les caractéristiques du panel droit. Et pour ca il faut pouvoir sélectionner les objets d'un datagrid....

  10. #10
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    ah bah cà cà marche logiquement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int id = (int)Grid.SelectedRows[0].Cells["ID"].Value

  11. #11
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    pour récupérer la valeur sélectionnée oui, mais pour la sélectionner je fais comment?

  12. #12
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    A pardon la fatigue surement,

    Essaye cà
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.dgDrid[1, 1].Selected = true;
    Par contre il faut desselectionner l'ancienne je pense, ou alors il doit y avoir une option pour ne as faire de multi select

    [EDIT] ouep la propriété multiselect [/code]

  13. #13
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    Le code que tu me proposes c'est pour sélectionner une ligne via le code non? Moi je veux sélectionner une ligne en cliquent dessus avec la souris, donc récupérer les coordonnées de la souris pour déterminer quelle cellule je selectionne, ou quelque chose d'approchant. Un peu comme dans la FAQ :
    http://faqcsharp.developpez.com/?pag...rid_select_rowhttp://faqcsharp.developpez.com/?pag...rid_select_row, sauf que cet exemple ne marche pas chez moi.

  14. #14
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    oups désolé, faut que je met au sommeil moi.
    Donc si j'ai bien compris, lorsque le gas clic sur le grid tu veux récuperer la valeur de la cellule sur laquelle il a cliqué, si c'est cà, cà ca marche

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    private void dgDrid_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                int col = e.ColumnIndex;
                int ligne = e.RowIndex;
                MessageBox.Show(this.dgDrid[col, ligne].Value.ToString());
            }
    Si c'est pas cà, explique bien ce que tu veux parce que c'est pas clair.

  15. #15
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    c'est ca. Je testerais ta solution demain. Je te tiens au courant.

  16. #16
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    ta solution ne génère pas d'erreur, mais rien ne se passe. Ma datagrid est figée. Reste à savoir pourquoi...

  17. #17
    Membre actif Avatar de Mast3rMind
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

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

    Informations forums :
    Inscription : Février 2006
    Messages : 226
    Points : 219
    Points
    219
    Par défaut
    Ça a déjà été répondu souvent sur ce forum...

    Entre autre ici: http://www.developpez.net/forums/sho...d.php?t=303747

    Au plaisir

  18. #18
    Membre actif
    Inscrit en
    Juin 2006
    Messages
    431
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 431
    Points : 209
    Points
    209
    Par défaut
    effectivement je ne l'avais pas vu.
    Merci pour la solution.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 07/07/2010, 11h35
  2. Récupérer le contenu d'une cellule Datagrid sur click
    Par mariooma dans le forum Silverlight
    Réponses: 3
    Dernier message: 27/10/2008, 15h00
  3. question sur visual studio 2005
    Par informatik dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 20/12/2006, 13h56
  4. ASP sur visual studio 2005
    Par smtjv dans le forum Visual Studio
    Réponses: 1
    Dernier message: 31/10/2006, 17h30
  5. Réponses: 2
    Dernier message: 09/07/2006, 17h40

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