Pb Main form qui intercepte la touche "Entrée"

Résolu
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010 - 8 juil. 2009 à 18:33
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010 - 13 juil. 2009 à 16:00
Baptiste

9 réponses

bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
13 juil. 2009 à 16:00
c'est bon j'avait mal implémenté la méthode ActiveControl(Control item) de l'interface IContainerControl.
3
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
8 juil. 2009 à 18:40
lol le message n'a pas marché.
Bonjour a tous,
j'ai créé une CustomList dont les items sont des CustomControl. L'item(CustomControl) contient une combo avec laquelle l'utilisateur peut soit séléctionner une valeur soit en saisir une.
Pour valider la saisie je souhaite utiliser l'evenement "Validated" de la combo mais c'est mon Formulaire qui intercepte la touche "Entréé" du clavier.
Quelqu'un a t'il une solution?
Merci.
0
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
9 juil. 2009 à 12:42
D'abord, validated est l'évènement qui est levé lorsque ton objet perd le focus.
Ensuite, tu peux par exemple t'abonner dans ton control à l'évènement keypress du formulaire si tu veux intercepeter l'appui sur entrée
0
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
9 juil. 2009 à 13:12
Salut leprov,
Non ca ne marche pas j'ai déja essayé les evenements "KeyPress", "KeyDown" le control intercept bien les touches sauf "Entrée" ;)
La propriété Keypreview du formulaire est a false.
0

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

Posez votre question
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
9 juil. 2009 à 13:44
J'ai effectué le test suivant:
Un formulaire, 2 boutons et écouteurs sur le Click des boutons.

public partial class test : Form
{
public test()
{
InitializeComponent();
}


private void button1_Click(object sender, EventArgs e)
{
Console.WriteLine("bt 1");
}

private void button2_Click(object sender, EventArgs e)
{
Console.WriteLine("ok");
}
}

Lorsqu'on tape "Entrée" l'événement Click du bouton ayant le focus est déclanché automatiquement.
Voila la pile d'appel:
ppi.exe!ppi.test.button1_Click(object sender {Text "button1"}, System.EventArgs e = {System.EventArgs}) Ligne 29 C#


System.Windows.Forms.dll!System.Windows.Forms.Control.OnClick(System.EventArgs e) + 0x70 octets


System.Windows.Forms.dll!System.Windows.Forms.Button.OnClick(System.EventArgs e) + 0x4a octets


System.Windows.Forms.dll!System.Windows.Forms.Button.PerformClick() + 0x5b octets


System.Windows.Forms.dll!System.Windows.Forms.Form.ProcessDialogKey(System.Windows.Forms.Keys keyData) + 0x8e octets


System.Windows.Forms.dll!System.Windows.Forms.Control.ProcessDialogKey(System.Windows.Forms.Keys keyData) + 0x16 octets


System.Windows.Forms.dll!System.Windows.Forms.Control.PreProcessMessage(ref System.Windows.Forms.Message msg) + 0xe2 octets


System.Windows.Forms.dll!System.Windows.Forms.Control.PreProcessControlMessageInternal(System.Windows.Forms.Control target {Text "button1"}, ref System.Windows.Forms.Message msg = {msg=0x100 (WM_KEYDOWN) hwnd=0x5092e wparam=0xd lparam=0x11c0001 result=0x0}) + 0x101 octets


System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(ref System.Windows.Forms.NativeMethods.MSG msg = {System.Windows.Forms.NativeMethods.MSG}) + 0xf6 octets


System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.System.Windows.Forms.UnsafeNativeMethods.IMsoComponent.FPreTranslateMessage(ref System.Windows.Forms.NativeMethods.MSG msg) + 0x5 octets


System.Windows.Forms.dll!System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(int dwComponentID, int reason -1, int pvLoopData 0) + 0x22e octets

System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(int reason -1, System.Windows.Forms.ApplicationContext context {System.Windows.Forms.ApplicationContext}) + 0x177 octets

System.Windows.Forms.dll!System.Windows.Forms.Application.ThreadContext.RunMessageLoop(int reason, System.Windows.Forms.ApplicationContext context) + 0x61 octets

System.Windows.Forms.dll!System.Windows.Forms.Application.Run(System.Windows.Forms.Form mainForm) + 0x31 octets

ppi.exe!ppi.Program.Main(string[] args = {string[0]}) Ligne 55 + 0x1d octets C#
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 juil. 2009 à 18:21
Bonjour,
Sur la comboBox, s'abonner à l'événement KeyPress
Ensuite, faire un teste pour savoir si c'est la touche Enter qui a été pressée (code 13).

<hr />
-Blog-
-Site Perso-
0
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
9 juil. 2009 à 18:50
Merci de ta réponse mais j'ai déja essayé, toutes les touches sont interceptées par l'écouteur de la combo sauf la touche Enter qui est interceptée par le formulaire conteneur qui lui n'a pas d'écouteur et déclanche l'évenement "Clik" ou autre d'un control fils ayant le focus.
Une chose bizare:
Sur mon form j'ai un bouton et ma liste, le bouton est toujours préséléctionné(en surbrillance) même si je manipule ma liste comme s'il gardait le focus??
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
9 juil. 2009 à 19:39
J'ai fait un teste à l'instant et je n'ai pas ce problème.
Tu peux être plus clair dans la marche à suivre ou mettre un mini projet (avec le strict minimum) en ligne?

<hr />
-Blog-
-Site Perso-
0
bcazard Messages postés 18 Date d'inscription lundi 8 novembre 2004 Statut Membre Dernière intervention 26 avril 2010
13 juil. 2009 à 15:16
Salut Bidou et désolé de repondre si tard j'étais en congé.
Comment fait on pour uploader un projet sur le forum??
0
Rejoignez-nous