Enter Dans un TextBox de ToolStripMenu

olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 24 sept. 2008 à 21:32
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 - 25 sept. 2008 à 07:48
Bonjour

J'ai mis un Toolstripmenu dans ma form
J'ai un DropDownButton dans le toolstripMenu

Jusque la tout va bien j'accede a mes menu

MAIS

Sur une option du DropDownButton, j'ajoute un textBox qui doit permetre d'entrer une valeur relative a cette option.

J'ai donc le secret espoir que quand l'utilisateur ouvre ce textbox et introduit du texte dedans quand il fait Enter, te text se ferme, je recupere un event et sur cet heureux evenement on puisse agir !

Mais mon espoir fait blong sans plus !!
Quelle est la formule magique pour employer ce bingz comme il faut ?

Merci de votre aide

2 réponses

xmox667 Messages postés 357 Date d'inscription jeudi 8 juin 2006 Statut Membre Dernière intervention 26 décembre 2011 4
25 sept. 2008 à 03:23
Salut,
moi je ferais ceci:

a) Un ToolStripSplitButton (ToolStripSplitButton) nommé ToolStripSplitButton dans cet example
b) Un Textbox (ToolStripTextBox) nommé ToolStripTextBox
c) Lui brancher l'événement KeyDown ci-dessous:

 private void toolStripTextBox_KeyDown(object sender , KeyEventArgs e)

        {
            if( e.KeyCode == Keys.Enter )
            {               
                OnKeyEnter(toolStripTextBox , new KeyEnterEventArgs(ToolStripTextBox.Text));
                ToolStripSplitButton.HideDropDown();
                ToolStripTextBox.Text = string.Empty;
                e.SuppressKeyPress = true;   //évite le beep            
            }
        }
d) Créer un Event KeyEnter Dans la Form:

        public event KeyEnterHandler KeyEnter;
        public void OnKeyEnter(object sender , KeyEnterEventArgs e)
        {
            if( KeyEnter != null ) KeyEnter(sender , e);
        }

e) Créer un Handler et sa classe d'argument pour cet event:

        public delegate void KeyEnterHandler(object sender , KeyEnterEventArgs e);

        public class KeyEnterEventArgs : EventArgs
        {
            public KeyEnterEventArgs(string text)
            {
                Text = text;
            }
            public string Text { get; set; }
        }

f) brancher l'événement KeyEnter dans la Form:

KeyEnter += new KeyEnterHandler(MainForm_KeyEnter);       

g) Dans l'argument e tu as accès à au texte saisie : e.Text
        void MainForm_KeyEnter(object sender , MainForm.KeyEnterEventArgs e)
        {
           MessageBox.Show(e.Text);
        }
A+
0
olibara Messages postés 666 Date d'inscription dimanche 16 décembre 2007 Statut Membre Dernière intervention 11 mars 2010 6
25 sept. 2008 à 07:48
Merci

C'est une technique similaire que j'emploie déja pour les combo
Mais c'est dommage de ne pas avpir cet event en natif !
0
Rejoignez-nous