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 :

Mémoriser une "Data.Value" d'un DataGridView


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Par défaut Mémoriser une "Data.Value" d'un DataGridView
    Bonjour,

    Mon contexte :
    Je suis sous Vista, avec Visual Studio 2008 pro, Office 2007 pro et une base de données Access.
    J'affiche sans difficulté dans un DataGridView les données pertinentes (Filtrées) d'une table Access, à l'aide d'un Binding Source et d'un Table Adapter.
    En cliquant je sélectionne une cellule du DataGridView, que j'affiche sans difficulté dans un ComboBox lié. J'ai mémorisé le Row Index de la cellule sélectionnée dans le DataGridView et je connais le nom de sa colonne.

    Mon problème :
    Je ne parviens pas à extraire la valeur de la cellule sélectionnée et à la mémoriser dans une variable publique (afin de l'utiliser dans une autre form, pour configurer une nouvelle requête à une autre table Access, et l'intégrer à un texte de présentation).

    Il doit exister un palliatif à l'absence de propriétés du genre "SelectedCell. DataValue" dans les DataGridView et DataGridViewComboBox, mais je ne le trouve pas dans la documentation.

    Quelqu'un peut t-il m'aider - Merci -

  2. #2
    Expert confirmé 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
    Par défaut
    object SavedValue =null ;
    ...
    SavedValue=MyDataGridView.Rows[MyRowIndex].Columns[MyColumnName].Value ;
    // ou alors : SavedValue=MyDataGridView.CurrentCell.Value ;

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Par défaut
    Merci, vous m'avez permis de progresser.
    Mais j'ai encore quelques difficultés :

    1- Avec la première solution, la propriété Rows[ ] n'accepte pas ma variable "RowIndex", ni d'ailleurs la spécification d'un numéro de ligne (1,2 ou 3) dans le corps de l'instruction : Cette information est soulignée en bleu avec le message "Identificateur attendu" (que je présente ce numéro au format "Integer", ou "String") - De plus, cette formulation n'acccepte pas la propriété "Value". Je ne suis donc pas parvenu à récupérer la valeur de la cellule.

    2- Votre deuxième suggestion (.... CurrentCell.Value) fonctionne bien, je récupère la valeur de la cellule sélectionnée dans ma variable et je peux l'afficher. Mais ma grille comporte plusieurs colonnes et il y a un risque pour que l'utilisateur ne clique pas toujours sur la bonne colonne. Il me faudra donc trouver le moyen de modifier la sélection par programme pour la ramener sur la colonne voulue.

    Merci encore

  4. #4
    Membre confirmé
    Profil pro
    Développeur Java
    Inscrit en
    Août 2008
    Messages
    176
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Août 2008
    Messages : 176
    Par défaut utilisé l'évènement cellContentClick
    je crois que vous pouvez utilisé l'évènement cellContentClick pour résoudre votre problème


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void dataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                if (dataGridView.Columns[e.ColumnIndex].Name == "le nom de la colonne voulu")
                {
    ..............
    }
    }
    j'espère que ça vous aide un peu

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 10
    Par défaut
    Merci - Pour info, J'ai résolu mon problème en deux étapes :

    1- Identification de la Row sélectionnée avec - DataGridView.CurrentRow.Index -
    (qui renvoi un interger que l'on peut utiliser comme paramètre de l'instruction suivante)

    2- Puis balayage de toutes les colonnes de la grille avec : - DataGridView.Item(Colonne, Row).FormatedValue - (qui renvoi un string mémorisable et affichable)
    afin de lire et de mémoriser successivement toutes les données de la rangée sélectionnée, en utilisant comme paramètre le "RowIndex" mémorisé ci-dessus et en variant le paramètre "Index de la colonne" de 0 à x.

    Encore merci de votre aide.

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

Discussions similaires

  1. Variable d'une clause where avec quote
    Par kcizth dans le forum Langage SQL
    Réponses: 1
    Dernier message: 17/04/2008, 15h43
  2. Modification d'un texte dans une fenetre "d'erreur"
    Par PAUL87 dans le forum Access
    Réponses: 8
    Dernier message: 21/10/2005, 13h12

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