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 :

lire le contenu d'un cellule d'un datagridview au cours de la frappe


Sujet :

C#

  1. #1
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 67
    Points
    67
    Billets dans le blog
    1
    Par défaut lire le contenu d'un cellule d'un datagridview au cours de la frappe
    Bonjour,

    J'ai un datagridview.
    Lorsque je suis en train d'entrer une donnée dans une cellule, l'appli n'arrive pas a lire la valeur en cours de saisie. L'appli n'arrive a lire la valeur que lorsque je sors de la cellule... jamais la valeur en cours de saisie.
    Il m'est donc impossible de valider la donné en cours de saisie en temps réel.

    Est-ce que vous auriez une suggestion s'il vous plait?

    Merci
    Mich

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            private void dgv_test_CellValueChanged(object sender, DataGridViewCellEventArgs e)
            {
                string newValue = dgv_test.Rows[e.RowIndex].Cells[e.ColumnIndex].Value as string;
            }
    C'est ça que tu veux ?

    [EDIT] En fait je pense que tu veux plutot Ca

  3. #3
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 67
    Points
    67
    Billets dans le blog
    1
    Par défaut
    Presque, à part que j'appelle la methode dans une autre thread (donc delegate ...).
    Pour plus d'explication voici la methode actuelle (qui n'arrive pas a lire les données en cours de frappe mais seulement apres sortie de la cellule):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
            private string capteurDGView_getCellnmText(int col, int row)
            {
                string str = string.Empty;
                if (this.capteur_dGView[col, row].Value != null)
                    str = this.capteur_dGView[col, row].Value.ToString();
                return str;
            }

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    198
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 198
    Points : 106
    Points
    106
    Par défaut
    Si tu n'arrives qu'à lire ce qu'il y a en sortie de la cellule, ce n'est pas juste parce que l'évènement est déclenché une seule fois quand tu sors de la cellule ?

    Si le probleme c'est ça, voit mon lien qui lance un event a chaque fois que le texte est modifié.

  5. #5
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 67
    Points
    67
    Billets dans le blog
    1
    Par défaut
    Merci, c'est bien ca.
    Ok pour l’événement pas déclenché.
    Par contre, j'ai toujours pas compris pourquoi dans mon test je ne peux pas lire le contenu de la cellule tant que je n'en suis pas sorti?????
    La méthode était appelée toutes les 250ms dans une boucle while ???
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while(....) { 
        ...
        try { txt = (string)(Invoke((dcapteurDGView_getCellnmText)capteurDGView_getCellnmText, 0, nb_row-2));}
        catch (Exception ex) { MessageBox.Show(ex.Message); }
        Debug.WriteLine(txt);
    }

  6. #6
    Membre du Club

    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    69
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 69
    Points : 67
    Points
    67
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par AsPrO Voir le message

    [EDIT] En fait je pense que tu veux plutot Ca
    Ce serait bien Ca, a part que je rentre autant de fois dans la methode textBox_TextChanged() qu'il y a de lignes dans le datagridview ????

    Mais surtout le fait de passer la cellule courante sur la derniere ligne crée une nouvelle ligne et ca fait donc 2 lignes vides ce qui n'est pas tres elegant.

    Le probleme n'a lieu que lorsque je change de cellule courant a partir de l'exemple donné. Aucun probleme si je le fait a partir d'une autre methode (comme l'appuie sur un bouton)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
       // TextBox TextChanged Event
       Private void textBox_TextChanged(object sender, EventArgs e)
       {
            string msg = string.Empty;
            int nb;
     
             if(cntObject.Text!=string.Empty)
             {
                msg=cntObject.Text;
                nb = this.capteur_dGView.RowCount;
                if (msg.Length == 8)
                    this.capteur_dGView.CurrentCell = this.capteur_dGView[0, nb - 1];   // ici ca crée une nouvelle ligne alors que je veux juste descendre ????
             }
       }

Discussions similaires

  1. Lire le contenu de chaque cellule
    Par callofduty dans le forum Images
    Réponses: 5
    Dernier message: 10/08/2013, 00h03
  2. Lire contenu d'une cellule
    Par Nexussmb dans le forum jQuery
    Réponses: 2
    Dernier message: 22/03/2012, 14h10
  3. DBGrid Lire le contenu d'une cellule
    Par HooK dans le forum Delphi
    Réponses: 2
    Dernier message: 13/06/2007, 11h54
  4. Comment lire le contenu d'une cellule
    Par lthibert dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 24/01/2007, 17h21
  5. Comment lire le contenu en arabe d'une cellule excel avec
    Par deneche dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/03/2006, 10h01

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