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 :

DataGridView et Selected_Item


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Points : 64
    Points
    64
    Par défaut DataGridView et Selected_Item
    Hello !

    Je viens vers vous pour un petit soucis de datagridview !

    En effet, j'ai créé une DataGirdView de plusieurs colonnes qui sont les caractéristiques d'un contact c'est à dire "Nom - Prénom - Tél - Mail - etc..." !
    J'aimerais, lorsque l'on sélectionne le dit contact (la ligne en gros), récupérer ce Contact (pour l'envoyer vers une autre base de donnée que celle qui contenait le contact à l'origine, mais ça, c'est une autre histoire ! Je ferais un sujet plus tard si besoin est, chaque chose en son temps )

    J'ai bien connaissance de la propriété selection_changed de la dataGridView ! Mais malheureusement je cherche et n'arrive pas à retrouver ce cours que j'ai suivi et qui parlait d'un certain ItemSelected ou quelque chose du genre et j'ai beau chercher à l'aide de mon ami ctrl+space, je n'y arrive pas ! Quel est le fuck ?

    Merci à vous pour vos réponses !

    Amicalement,
    Tutu.

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Il y a beaucoup d'exemple sur le net pour ce genre de problème.

  3. #3
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Points : 64
    Points
    64
    Par défaut
    Merci beaucoup de ton aide ! J'ai pu trouver quelque chose d'intéressant mais je m'embrouille complètement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
             private void DgvContact_SelectionChanged(object sender, EventArgs e)
            {
                if (DgvContact.SelectedRows.Count > 0)
                {
                    int index = DgvContact.SelectedRows[0].Index;
                }
     
            }
    Si j'ai bien compris, on définit le "point de début" soit la première ligne de la DGV ? Mais comment sélectionner cette ligne ?
    J'ai bien essayé la propriété DgvContact.SelectedItem et DgvContact.SelectedCells mais je n'obtient qu'une erreur ! :'(

  4. #4
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Si j'ai bien compris, on définit le "point de début" soit la première ligne de la DGV ? Mais comment sélectionner cette ligne ?
    Non, ce bout de code permet de récupérer l'index la première ligne sélectionnée : Comme on peut activer la multisélection, c'est une collection qui contient la (ou les) lignes sélectionnées.
    Si tu es en type de sélection unique, il n'y aura qu'un seul objet dans la collection SelectedRows.

    Mais dans ton cas, tu peux directement récupérer DgvContact.SelectedRows[0] dans un DataGridViewRow
    "Hope for the best, but prepare for the worst."

  5. #5
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Points : 64
    Points
    64
    Par défaut
    Voilà ! C'est ce que je cherchais !!!
    J'avais vu ça en cours mais pas moyen de remettre la main dessus !

    Petite question supplémentaire si tu as une idée ?

    Je récupère techniquement une ligne entière de ma DataGridView... Mais étant donné qu'une ligne correspond à Client.Nom ET Client.Prénom ET Client.Tél etc...
    Qu'est ce que je récupère exactement et comment je peux... disons... l'utiliser ?

    J'ai tenté un MessageBow.Show(SelectedRow.Text) mais ça n'a pas l'air de faire parti des possibilités imaginées par VS !

    As-tu une astuce, une piste ?
    Une conversion en chaîne de caractère ?
    La création d'un tableau dans lequel on mettrait les différentes colonnes de la ligne sous forme de string ?

  6. #6
    Membre averti
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    233
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 233
    Points : 336
    Points
    336
    Par défaut
    Alors normalement, dans ton DataGridView, tu as du faire un "binding" entre la colonne de ta gridview et la source de données.

    Du coup, pour récupérer les valeurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    DataGridViewRow row = DgvContact.SelectedRows[0];
     
    string test = row["NomDeLaColonneClient"].Value.ToString(); // De mémoire, c'est peut-être pas ça ^^
    Par exemple

    Si tu as déjà manipulé des DataTable, tu devrais voir l'analogie rapidement, et pour faire un méga giga gros raccourci : un DataGridView est une représentation visuelle d'un DataTable (d'où la similitude entre le DataRow d'un DataTable et le DataGridViewRow d'un DataGridView )
    "Hope for the best, but prepare for the worst."

  7. #7
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Points : 64
    Points
    64
    Par défaut
    Je pèèèèèèète un câble !!!

    Les dataGridView sont le PIRE composant graphique du MONDE !

    Je ne peux juste rien récupérer étant donén que rien ne semble être à l'intérieur ! -_-

    Bon... je vais tout expliquer depuis le début, j'ai essayé tellement de chose, fait tellement de conneries que plus rien n'est à sa place et que toute ces méthodes ont l'air de se manger entre elles !
    Je reprend donc tout depuis le début, chronologiquement :

    J'ai crée donc une BindingList<Contact>contacts qui est la datasource de la DGV :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DgvContact.DataSource = contacts;
    Ensuite, j'ai créé à l'aide des options graphiques (LoadClient.Design) les colonnes Id, Nom, Prénom et Tél sur la même ligne !

    Il me propose également une source de données ! J'y ai connecté ma base SQL et ai créé une nouvelle source de données : base de données --> DataSet --> *Choix de la BDD etc etc...* --> Quels objets de données voulez-vous dans votre DataSet et j'ai choisi les champs Id, Contact_Name, Contact_FirstName et Contact_Phone de la table "Contact" dans la catégorie "Tables" !

    Jusqu'ici, tout a l'air de bien se passer et je ne pense pas qu'une erreur ai pu se glisser !

    Cependant, j'ai une erreur qui se produit dans ma Classe contact au niveau du code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
             public string LastName
            {
                get { return LastName; }
                set { LastName = value; }
            }
    Le set me génère une exception de type 'System.StackOverflowException' !

    Sur internet, toute les solutions que j'ai pu trouver ont l'air de traiter d'un sujet totalement différent et lors ce que j'enlève le set, le constructeur de Contact me génère bien entendu une erreur !

    Je craque, ce problème a l'air simple mais j'en suis déjà a 8 sujets différents dont 3 sur ce forum ou les modérateurs eux-même semblent en avoir marre de ma cause perdue au point de mettre le sujet en résolu avant qu'il le soit !

    Qu'est-ce qui ne va pas ? Pourquoi je peux pas juste récupérer deux mots et les mettre dans une case et c'est tout ?

    PS : J'ai mit en débug le programme, le set du LastName arrive pourtant à m'afficher la valeur "André" mais plante tout de même à cette ligne... grand mystère que voilà !
    Ah et j'ai ceci aussi qui me paraît important mais j'ai pas l'impression que le soucis viennent de là :/
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    this.DgvContact.AutoGenerateColumns = false;
    Par Pitié mon Dieu ou celui qui le remplace... le temps commence à me manquer et j'ai déjà perdu presque 2 semaines sur une simple DataGridView a la mords-moi le noeud !
    Si une erreur, aussi infime soit-elle subsiste, envoyez-moi un fax ou un pigeon voyageur ou n'importe quoi !
    Amen.

  8. #8
    Membre averti Avatar de diallomad
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    164
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Mali

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 164
    Points : 364
    Points
    364
    Par défaut
    Salut, tu peux essayer:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public string LastName { get; set; }
    Les dataGridView sont le PIRE composant graphique du MONDE !
    Desolé pour les soucis mais les DataGrid sont trop cool à utiliser pour moi en tout cas
    Le chemin de la réussite n'a jamais été une courbe stable tant qu'on respire dans les mêmes fautes sans fin.
    Thomas Sankara

  9. #9
    Membre du Club
    Homme Profil pro
    Etudiant
    Inscrit en
    Janvier 2016
    Messages
    54
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Etudiant

    Informations forums :
    Inscription : Janvier 2016
    Messages : 54
    Points : 64
    Points
    64
    Par défaut
    Ouiiiiii !!!
    Merci !

    Tu es un GENIE BonDieu !

    Des gros poutous d'un Tutu reconnaissant !

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

Discussions similaires

  1. [c#] datagridview - trouver postion de la selection
    Par zeroox dans le forum Windows Forms
    Réponses: 7
    Dernier message: 15/04/2009, 12h48
  2. [VB.NET][DataGridView]:couleur de fond d'une cellule
    Par BigTicket42 dans le forum Windows Forms
    Réponses: 8
    Dernier message: 13/05/2008, 22h07
  3. Probleme d'affichage avec un DataGridView
    Par kekesilo dans le forum Windows Forms
    Réponses: 3
    Dernier message: 30/01/2007, 14h12
  4. [C#][DataGridView]Comment selectionner ligne sur Click Droit ?
    Par VincenzoR dans le forum Windows Forms
    Réponses: 12
    Dernier message: 23/12/2005, 22h34
  5. [VS2005][VB.Net] Custom Format dans un DataGridView
    Par Vonotar dans le forum VB.NET
    Réponses: 10
    Dernier message: 22/11/2005, 08h15

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