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

brixi69 Messages postés 44 Date d'inscription mardi 13 juin 2006 Statut Membre Dernière intervention 31 mars 2008 - 6 sept. 2007 à 13:41
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 - 10 sept. 2007 à 14:48
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

cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
6 sept. 2007 à 22:56
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
            }
        }
0
brixi69 Messages postés 44 Date d'inscription mardi 13 juin 2006 Statut Membre Dernière intervention 31 mars 2008
10 sept. 2007 à 11:50
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 ?

@"#+++
0
cs_wizad Messages postés 355 Date d'inscription samedi 30 octobre 2004 Statut Membre Dernière intervention 14 avril 2009
10 sept. 2007 à 11:52
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 ^^)
0
brixi69 Messages postés 44 Date d'inscription mardi 13 juin 2006 Statut Membre Dernière intervention 31 mars 2008
10 sept. 2007 à 13:21
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é
 }

@"#+++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Neo020585 Messages postés 178 Date d'inscription lundi 10 mars 2003 Statut Membre Dernière intervention 6 juillet 2009 4
10 sept. 2007 à 14:48
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
<!--
0
Rejoignez-nous