Bonjour
J'ai une class qui hérite de la class label
Est il possible de lui ajouter un evenement keypress ?
Merci
Bonjour
J'ai une class qui hérite de la class label
Est il possible de lui ajouter un evenement keypress ?
Merci
Salut,
au moment de l'initialisation tu peux écrire :
il faut que la fonction monHandlerKeyPress soit défini comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part instanceDeMaClasse.KeyPress += new System.Windows.Forms.KeyPressEventHandler(monHandlerKeyPress);
(la portée n'a pas d'importance en soit, il faut juste qu'elle soit visible pour ton contrôle ... je crois)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 public void monHandlerKeyPress(object sender, KeyPressEventArgs e) { // des trucs à faire }
Plus je connais de langages, plus j'aime le C.
Je ne pense pas que c'est possible
Après avoir lu
http://forums.codeguru.com/showthrea...label-control!
Je ne connais pas la finalité mais... ci-dessous, les 2 idées qui me viennent.
solution 1 : tu superpose une textbox au label. Un coup de visible sur le focus du label.
solution 2: remplacer le label par une textbox sur laquelle tu enlève les bordures. ça aura l'apparence d'une bière mais avec l'effet de la pression (du clavier).
J'avoue que j'ai pas creuser, je suis juste allé sur la MSDN voir le description de System.Windows.Forms.Label (qui contient l'event ... hérité de Control mais qui n'est d'ailleurs même pas proposé dans le designer de VS).
Il est vrai qu'un contrôle qui ne peut pas avoir de focus va difficilement capter les events clavier.
Plus je connais de langages, plus j'aime le C.
j'ai demandé aussi au forum microsoft
et obtenu les réponses suivantes
A standard label control has several keyboard events which are at the API level and are not intended for used directly in code. Think about it, there is nothing a user can do to raise such event which would be a KeyPressEventHandler (delegate).
So the answer is yes but to no avail and the real answer is no using the information above.As Kevin has said, yes you can but, a Label is not made to capture the keyboard focus like a TextBox or other focus-able control that uses Key Presses so, you would need to add code that would make it accept focus. Depending on what you are using the label for there may be a better choice or it may even be better to Inherit from Control or and create the code to make it function the way you want.
La première question doit être : as tu choisi le bon contrôle ?
Le label ne semble pas visiblement pas correspondre en terme technique.
Un label sert a afficher du texte, c'est (quasiment) tout.
Si il y a un KeyPress nécessaire, alors c'est que tu avais prévu que l'utilisateur clique sur le label (ou le sélectionne d'une manière ou d'une autre) puis qu'il presse une touche clavier.
Or un label n'est pas prévu pour interagir avec un clavier.
Donc soit de deux choses :
- Soit tu gardes ton label cliquable, (en mode ON/OFF, avec changement de couleur) et tu utilises les KeyPress de la Form qui va regarder sur quelle label tu as cliqué pour savoir quoi faire. (donc la sélection du label et le keypress du clavier sont séparés)
- Soit le label ne va pas, alors un bouton, un textbox, (des contrôles qui ont aussi du texte) ou quelque chose d'autre conviendrai mieux.
Si tu détails un peu plus ton besoin, on pourrait trouver ce qu'il te faut.
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
bon au faite j'essayais de répondre à ce post
http://www.developpez.net/forums/d14...gn-tabcontrol/
en pensant donner au label le keypress et obtenir la transparencePetite sous question, vous savez comment mettre en transparence une textbox ?
Pour un Label pas de problème mais pas pour une textbox.
Oui donc... il aurait mieux valus rester sur le problème initiale.
Tu pensais peut être utiliser les flèches "pour changer d'onglet" (changer de panels) pour simuler un TabControl (sans en avoir un).
Et c'est tout à fait faisable donc.
Tu prends un TableLayoutPanel (tableau transparent),
(qui accessoirement à la faculté de se redimensionner tout seul quand on resize la fenêtre, et resize les contrôles contenu dans ses cellules si ceux-ci on un Dock=Fill)
tu créés 2 colonnes, 5 lignes, dans la colonne de gauche tu mets un label par case (dock=fill)
et dans la colonne de droite autant de panel que de fenêtre, chaque panels s’étalant sur toutes les lignes (RowSpan =5)
et tu peux "changer d'onglet" (faire apparaître le bon panel) sur l’événement Label-clique, ET/OU dans l’événement KeyPress de la Form, tu détecte si c'est une flèche, tu regardes sur quel panel tu te trouve pour sélectionné le suivant ou le précédent.
L'avenir appartient à ceux... dont les ouvriers se lèvent tôt. (Coluche)
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager