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 :

Problème de sélection datagridview


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut Problème de sélection datagridview
    Bonjour,

    j'ai un petit souci lors de la sélection d'un item dans une datagridview. Lors d'un clic sur un bouton, j'aimerais récupérer la valeur du champ sélectionné dans ma datagridview.
    Voici le code de la récupération de la valeur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridViewFichiers.SelectedRows[0].Cells[0].Value.ToString()

    Cependant, j'ai une exception qui se lance : "ArgumentOutOfRangeException" lors de l'exécution de cette ligne de code. Par contre cette exception ne se lance pas lorsque je sélectionne ma row dans le datagrid en cliquant sur le coté gauche de la row, là où il y une petite flêche qui apparait Cette exception se lance seulement lorsque je clique n'importe où sur la row, mais bon elle est quand même sélectionnée.

    Comment dois-je faire pour récupérer ma valeur, sans devoir à chaque fois cliquer sur le coté gauche des rows ?

    Merci d'avance,

    Julien

  2. #2
    Membre éprouvé
    Avatar de Gurdil le nain
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2009
    Messages
    468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 468
    Points : 1 111
    Points
    1 111
    Par défaut
    C'est très simple, quand tu cliques n'importe où dans ta datagrid, il ne voit qu'une cellule sélectionnée...donc ta propriété SelectedRows est vide, alors que quand tu cliques sur la flèche de droite, tu sélectionne réellement une ligne...

    Il faut que tu récupère la cellule sélectionnée et que tu récupère sa ligne après.

  3. #3
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 50
    Points
    50
    Par défaut
    Ou bien tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    maGrill.SelectionMode = FullRowSelect;
    pour que tu selectionne un row entier.

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut
    Juste, c'est logique Merci

    Sinon comment savoir si l'utilisateur a cliqué sur l'un ou sur l'autre ? Parce que si j'entoure le tout dans un try-catch catchant l'exception "ArgumentOutOfRangeException" et que je teste des deux manières :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridViewFichiers.SelectedRows[0].Cells[0].Value.ToString()
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridViewFichiers.SelectedCells[0].Value.ToString();
    si l'utilisateur a cliqué n'importe où, il y aura quand meme une exception pour la première ligne et l'utilisateur a cliqué sur la flêche, il y aura une exception pour la deuxième ligne

    Une idée pour éviter cela ?

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut
    Oups, je n'avais pas vu ton post smaouiomar Cela résout mon deuxième problème

    Merci à vous deux et bonne journée

  6. #6
    Membre du Club
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2006
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2006
    Messages : 35
    Points : 50
    Points
    50
    Par défaut
    Citation Envoyé par asnaeb Voir le message
    J
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridViewFichiers.SelectedRows[0].Cells[0].Value.ToString()
    Je pense que tu peux utiliser dataGridViewFichiers.selectedCells directement

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(dataGridViewFichiers.selectedCells.Count > 0 && dataGridViewFichiers.selectedCells[0].Index > 0)
    {
    //Traitement
    }
    Pour info Si tu selectionnes la flèche du row tu aura une cellule avec Index = -1

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Points : 67
    Points
    67
    Par défaut
    Ok merci je vais modifier mon code Merci pour l'aide

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

Discussions similaires

  1. [.NET - C# VS2005] Problème de sélection sur un DataGridView
    Par NeraOne dans le forum Windows Forms
    Réponses: 4
    Dernier message: 11/05/2007, 11h30
  2. [XPath] Problème de sélection de noeuds
    Par Heriquet dans le forum XSL/XSLT/XPATH
    Réponses: 5
    Dernier message: 18/02/2006, 10h22
  3. [VBA] Problème de sélection de feuille
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 28/12/2005, 10h44
  4. Problème de sélection sous IE
    Par titisite dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 27/12/2004, 14h05
  5. [CR] Problème de sélection sur un champ date
    Par noluc dans le forum SAP Crystal Reports
    Réponses: 2
    Dernier message: 21/11/2003, 16h56

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