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 :

utiliser un keypress sur une cellule de datagrid


Sujet :

C#

  1. #1
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut utiliser un keypress sur une cellule de datagrid
    bonjour,
    j'aimerais savoir comment utiliser un keypress sur une cellule de datagrid !
    alors deja, mon datagrid est sectionné en plusieurs partie, et j'ai prévu des fonctions différentes pour chaque colonne lors d'une saisie.

    par exemple, dans la colonne réservée au texte, je veux utiliser ma fonction prévu pour ça.
    de meme sur la colonne réservée à l'insertion d'un nombre réel, j'aimerais utiliser la fonction qui lui est réservée.
    et ainsi de suite ...

    voici le code de mon tableau :

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
     
                DGNote.ReadOnly = false;
                DGNote.ColumnCount = 8;
                // numéro de la note
                DGNote.Columns[0].Visible = false;
                // numéro de l'élève
                DGNote.Columns[1].Visible = false;
                // la colonne des nom et prenom est non modifiable
                DGNote.Columns[2].ReadOnly = true;
                DGNote.Columns[2].Name = "Elève";
                DGNote.Columns[2].Width = 106;
                // numéro de la matiere
                DGNote.Columns[3].Visible = false;
                // la colonne de la matiere est non modifiable
                DGNote.Columns[4].ReadOnly = true;
                DGNote.Columns[4].Name = "Matière";
                DGNote.Columns[4].Width = 106;
                // valeur note
                DGNote.Columns[5].Name = "Note";
                DGNote.Columns[5].Width = 50;
                // date
                DGNote.Columns[6].Name = "Date";
                DGNote.Columns[6].Width = 70;
                //coeff
                DGNote.Columns[7].Name = "Coefficient";
                DGNote.Columns[7].Width = 70;
                AfficheCol();
    j'ai fais pas mal de recherches sur internet et je n'ai rien trouvé >_<
    pensez-vous pouvoir m'aider ?
    merci

  2. #2
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    personne ne peut m'aider ? Oo

  3. #3
    Membre habitué
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Points : 131
    Points
    131
    Par défaut
    Tu as distingué si tu veux effectuer un traitement côté client ou serveur lors de la saisie dans ton Datagrid ? C'est la première étape.

  4. #4
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    un coté client ? et serveur ??
    mais il ne s'agit pas d'une appli dispo sur le net ...

    bref, la fonction se trouve dans mon le fichier program.cs, et j'aimerais l'appeller dans ma winform qui contient le datagridview

    voici un exemple réalisé avec un textbox :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private void TxtNom_KeyPress(object sender, KeyPressEventArgs e)
            {
                string unTexte = TxtNom.Text;
     
                if (Program.FormatTexte(unTexte, e))
                {
                    e.Handled = false;
                }
                else
                {
                    e.Handled = true;
                }
            }
    bon, maintenant j'aimerais appeller mes fonctions sur les colonnes choisies

  5. #5
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    c'est simple tu repère la cellule selectionnée et ensuite tu lui effectue ton traitement specifique.
    DGNote.Selected...

  6. #6
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    oui je connais le principe, mais c'est l'adaptation au code qui me pose probleme...

  7. #7
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    personne n'aurait un petit bout de code à partager svp ? ^^

  8. #8
    Membre habitué
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Mai 2006
    Messages
    152
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information

    Informations forums :
    Inscription : Mai 2006
    Messages : 152
    Points : 131
    Points
    131
    Par défaut
    Ok au début je me croyais encore sous la section ASP.NET

    Pour personnaliser les colonnes d'un DataGrid, n'existe-t-il une classe de base "Custom..." à dériver pour implémenter le comportement voulu, en surchargeant le comportement existant ?

  9. #9
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    Ta question a le droit à l'ouverture d'un nouveau sujet, plutot que continuer un sujet différent...*

    Sinon, je pense qu'il te faut dériver de la classe colonne.

  10. #10
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    lol, je ne souhaites pas personnaliser les colonnes de mon datagrid mais utiliser un evenement onkeypress dessus (avec differentes actions en fonction de colonnes >> une fonction de reconnaissance des nombres reels sur une colonne, pour la reconnaissance du texte sur une autre ...).

    j'ai continué les recherches de mon coté, et j'ai rien trouvé de concluant >_<

  11. #11
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    désolé cette phrase était destinée à samworld.
    Pour ton problème est-ce que tu fais du binding?

  12. #12
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    du binding ?
    non, à vrai dire je ne sais pas du tout de quoi tu parles.
    j'utilise c# depuis trop peu de temps pour en connaitre tous les termes -_-

    peux-tu m'en dire plus stp ?

  13. #13
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    comment ajoutes-tu tes donnes dans ton datagrid?
    à partir d'une liste, dataset, à la mano???ou autres

  14. #14
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    voila le code pour ajouter des éléments à ma datagrid :

    mais le probleme n'est pas là.
    voila comment je procede :
    j'entre mes valeurs dans des textbox et j'enregistre mon objet dans la classe. Ici, la saisie est tres bien gérée avec le onkeypress.
    je rempli mon datagrid avec ma collection ( le code est le suivant ).
    le hic, c'est que au cas ou j'ai fais une faute d'orthographe ou autre dans l'un des champs, je fais double clique dans le datagrid, et je modifie les valeurs. et c'est là que je n'arrive pas à utiliser le datagrid !
    tout le reste marche niquel, il y a juste ce petit probleme >_<

    voila

    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
    16
    17
    18
    int i,j;
                DGNote.Rows.Clear();
                ArrayList TabEleve = new ArrayList();
                TabEleve = laClasse.GetListeEleves();
                int nbEleves = laClasse.GetNbEleves();
     
                for (i = 0; i <= (nbEleves - 1); i++)
                {
                    unEleve = ((ClEleve)TabEleve[i]);
                    ArrayList TabNote = new ArrayList();
                    TabNote = unEleve.GetLesNotes();
                    int nbNotes = unEleve.GetNbNotes();
     
                    for (j = 0; j <= (nbNotes - 1); j++)
                    {
                        DGNote.Rows.Add(((ClNote)TabNote[j]).GetNumNote(), unEleve.GetNumEleve(), unEleve.GetNomEleve() + " " + unEleve.GetPrenomEleve(), Convert.ToInt32(((ClNote)TabNote[j]).GetLaMatiere().GetNumMatiere()), ((ClNote)TabNote[j]).GetLaMatiere().GetLibMatiere(), ((ClNote)TabNote[j]).GetValeurNote(), ((ClNote)TabNote[j]).GetDateNote(), ((ClNote)TabNote[j]).GetCoeffNote());
                    }
                }
    EDIT :
    a vrai dire ce bout de code est carément inutile vu que le probleme n'est pas là Oo
    lol

  15. #15
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    oula, désolé ça me donne pas envie de lire ton code...

  16. #16
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    bon je vais te donner un truc approximatif, à toi de le mettre en oeuvre.
    Dans ton code tu connais déjà le texte de l'entête de tes colonnes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    eicDataGridView1.Columns[0].HeaderText
    tu récupère la valeur et tu lui fais le traitement souhaité.

    Mais cette solution nulle. Pour le moment à part refaire tout ton code avec des listes typés, une classe nommée par exemple AfficheEleve
    avec les propriétés que tu affiches dans ton tableau et tu met cette liste en datasource du tableau et tu pourras faire joujou avec les objets directement...

  17. #17
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    non mais bon, de toute façon c'est pas a cause de ce code, je n'aurais pas du te le passer, ca va porter la confusion ^^

    c'est le probleme de la saisie dans le tableau, apres avoir cliqué dans une cellule qui me pose probleme, pas le remplissage de ce meme tableau


    EDIT :

    ah merci, je n'avais pas vu kil y avait une nouvelle page

  18. #18
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    tu as regardé s'il était pas en lectureseule?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    DataGridView1.ReadOnly = false;
    
    

  19. #19
    Membre actif
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    696
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Décembre 2007
    Messages : 696
    Points : 222
    Points
    222
    Par défaut
    ca c'est bon, je peux ecrire dans le datagrid et enregistrer...
    le probleme c'est que je peux y mettre n'importe quoi >_<

    genre je mets du texte dans la colonne réservée au nombre reel, pas top -_-
    lol

  20. #20
    Membre éprouvé Avatar de sisqo60
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Février 2006
    Messages
    754
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 754
    Points : 1 188
    Points
    1 188
    Par défaut
    tu as regardé du coté de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    eicDataGridView1.Columns[0].CellType
    

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/07/2009, 22h18
  2. Evènement sur un KeyPress sur une cellule Excel
    Par krfa1 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 09/01/2009, 13h56
  3. Utilisation de l'évenement double clic sur une cellule
    Par moilou2 dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 01/07/2008, 14h57
  4. Utilisation d'un tooltiptext sur une cellule ..
    Par mitje dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 01/07/2006, 02h44
  5. Réponses: 3
    Dernier message: 19/05/2006, 16h30

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