ToolTip d'erreur genre "un nom de fichier ne peut contenir tel caractère"

Signaler
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008
-
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
-
Bonjour !

Je cherche à interdire dans un datagridview l'écriture de certains caractères comme lorsqu'on veut changer un nom de fichier sous windows XP et que l'on tente d'utiliser les caractères "? / \ : *<>|
J'aimerais ne pas prendre en compte l'appui de la touche et afficher un toolTip d'erreur indiquant le probleme dans la cellule concernée.

Seulement voilà je ne parviens pas à trouver l'évenement qui réagirait à chaque appui d'une touche lors du changement de contenu dans une cellule (keydown ou keypress ne fonctionnent pas).

Je ne parviens ensuite pas à faire apparaitre ou disparaitre manuellement un tooltip.

Si quelqu'un sait me consacer quelques minutes ce serait bien gentil...

merci et @ bientôt

@"#+++

5 réponses

Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

Comment ça KeyPress ne fonctionne pas?

Voici un exemple d'utilisation pour intercepter la touche [Entrée]
private void TextBox_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == 13) // Le code de la/les touche(s) à traiter
            {
                e.Handled = true;  // Indique que l'évenement à été intercepté et ne doit pas être traité par le système
            }
        }
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008

Salut ! et merci pour ta réponse.

Effectivement pour un textbox ca marche très bien mais dans mon cas j'utilise un dataGridView et une edition cellule par cellule et là j'ai des problèmes.
Personne ne sait comment faire apparaitre ou disparaitre manuellement un tooltip ?

@"#+++
Messages postés
355
Date d'inscription
samedi 30 octobre 2004
Statut
Membre
Dernière intervention
14 avril 2009

Oups... excuse moi je n'avais pas vu que tu parlais d'un datagridview. Je regarder ça et te redis dans la journée (ou plutot la soirée ^^)
Messages postés
44
Date d'inscription
mardi 13 juin 2006
Statut
Membre
Dernière intervention
31 mars 2008

Je ne sais toujours pas utiliser les tooltips ! :-(

per contre, pour le keypress, apparement le probleme est maitrisé. Cela est lié au fait que le type d'objet contenu dans la cellule n'est pas connu à la base si j'ai bien compris.

Quoiqu'il en soit voici l'alternative utilisée: lors d'une édition de cellule j'utilise la cellule en tant que TextBox et puis je crée l'évenement KeyPress pour celle-ci, lequel peut alors être utilisé très facilement.

private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
    DataGridViewTextBoxEditingControl ctrl= (DataGridViewTextBoxEditingControl)e.Control;
    ctrl.KeyPress -= new KeyPressEventHandler(ctrl_KeyPress);
    ctrl.KeyPress += new KeyPressEventHandler(ctrl_KeyPress);
}
private void ctrl_KeyPress(object sender, KeyPressEventArgs e)
{
    //e.KeyChar pour conaitre le caractère tapé
    //e.handled pour accepter ou non le caractère tapé
 }

@"#+++
Messages postés
178
Date d'inscription
lundi 10 mars 2003
Statut
Membre
Dernière intervention
6 juillet 2009
4
Dans ta gestion de l'évenement :

ToolTip tp = new ToolTip();
// 2000 représente le temps d'affichage (ms)
tp.Show("ton_message", ton_controle, 2000);

Par exempletp.Show("Coucou", dataGridView1, 10000) affichera un tooltip avec le texte Coucou pendant 10 secondes sur ton contrôle datagrid.
"Une chose me laisse perplexe : Est-ce moi ou les autres qui sont fous ?" A. Einstein
<!--