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. #21
    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
    je n'y arrive pas.
    deja je n'arrive pas a obtenir le bon private void, ainsi que la ligne de code que je dois ajouter dans le designer.cs >_<

    pour la suite je pense savoir quoi faire.

    ce serait un truc du genre :

    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
    29
    30
    private void DGNote_CellContentClick(object sender, DataGridViewCellEventArgs e)
            {
                // capture de la case
                //string unTexte = TxtCoeffNote.Text;
     
                if (DGNote.SelectedColumns.GetType == "Note *")
                {
                    if (Program.FormatReel(unTexte, e))
                    {
                        e.Handled = false;
                    }
                    else
                    {
                        e.Handled = true;
                    }
                }
                else if (DGNote.SelectedColumns.GetType == "Date *")
                {
                    if (Program.FormatTexte(unTexte, e))
                    {
                        e.Handled = false;
                    }
                    else
                    {
                        e.Handled = true;
                    }
                }
     
                // etc, etc ...
            }
    sauf que ca me génère un gros paquet d'erreurs -_-

  2. #22
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2008
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 105
    Points : 117
    Points
    117
    Par défaut
    Pour être sur d'avoir bien saisi ton problème (au risque de paraitre idiot) tu souhaite qu'au click sur une cellule pouvoir enregistrer le type de donnée adéquate c'est ça? car dans ces cas tu pourrais identifier le titre de la colonne actuelle et donc modifier automatiquement le type grâce à un test

  3. #23
    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 c'est pas du tout ca !
    bon, imaginons que j'ai un tableau déja rempli.
    je fais double clique dedans pour pouvoir faire une saisie, car la cellule se transforme en une sorte de champ texte.
    et là, je veux pouvoir controler la saisie, avec des fonctions que j'ai créé.

    l'enregistrement se fait par un bouton, et n'a rien a voir avec mon probleme ...

    tout ce k eje veux controler, c'est la saisie dans la cellule que j'ai choisi, avec bien sur, des controles differents sur chaque colonne ( une colonne pour le texte, une autre pour les nombres reels ... )

    voila

  4. #24
    Membre averti Avatar de roster
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    397
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 397
    Points : 426
    Points
    426
    Par défaut
    Citation Envoyé par thor76160 Voir le message
    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
    Malheureusement, pas de masque de saisie pour Datagrid.

    Tu peux t'inspirer du code fournit par TOMLEV pour un sujet similaire:

    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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
            {
                // Ajout des handlers quand le contrôle d'édition apparait
                // Seulement si c'est un TextBox
                if (e.Control is TextBoxBase)
                {
                    e.Control.KeyPress += new KeyPressEventHandler(editingControl_KeyPress);
                    e.Control.VisibleChanged += new EventHandler(editingControl_VisibleChanged);
                }
            }
     
            void editingControl_VisibleChanged(object sender, EventArgs e)
            {
                // Suppression des handlers quand le contrôle d'édition disparait
                Control ctl = sender as Control;
                if (!ctl.Visible)
                {
                    ctl.KeyPress -= editingControl_KeyPress;
                    ctl.VisibleChanged -= editingControl_VisibleChanged;
                }
            }
     
            void editingControl_KeyPress(object sender, KeyPressEventArgs e)
            {
                // On accepte seulement les chiffres et le séparateur décimal
                // Il faut aussi accepter la touche backspace ('\b')
     
                // Au passage, on remplace aussi le point par le
                // séparateur décimal de la culture courante (virgule en français)
                if (e.KeyChar == '.')
                    e.KeyChar = System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator[0];
     
                bool ok = false;
                if (char.IsDigit(e.KeyChar))
                    ok = true;
     
                if (e.KeyChar == System.Globalization.NumberFormatInfo.CurrentInfo.NumberDecimalSeparator[0])
                    ok = true;
     
                if (e.KeyChar == '\b')
                    ok = true;
     
                e.Handled = !ok;
            }


    http://www.developpez.net/forums/d732038/dotnet/visual-basic-net/windows-forms/masque-saisie-datagridtextbox/

  5. #25
    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
    Citation Envoyé par sisqo60 Voir le message
    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.
    Ce n'était qu'une indication pour résoudre le problème posé dans ce sujet.

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