2010-04-17 9 views
2

J'ai cette zone de texte que j'utilise pour capturer des raccourcis clavier pour une configuration de préférences. J'utilise un crochet de clavier de bas niveau pour capturer des clés et les empêcher d'agir, par ex. la touche Windows, mais la touche Alt continue de défiler et rend ma zone de texte perdue.WinForms: Comment empêcher textbox de gérer la touche alt et perdre le focus?

Comment puis-je bloquer la touche Alt, de sorte que la mise au point reste inchangée dans ma zone de texte?

Répondre

6
private void textBox1_KeyDown(object sender, KeyEventArgs e) 
{ 
    if (e.Alt) 
    { 
     e.Handled = true; 
    } 
} 
+0

Ha , parle de manquer l'évidence :) Merci! – DigiMarco

0

Vous pouvez vous inscrire à l'événement KeyDown et pour le dans args faire ceci:

private void myTextBox_KeyDown(object sender, KeyEventArgs e) 
    { 
     if(e.Alt) 
      e.SuppressKeyPress = true; 
    } 

Et vous inscrire à l'événement comme ceci:

this.myTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.myTextBox_KeyDown); 

ou si vous ne l'utilisez C# 1.0, vous pouvez simplifier à ceci:

this.myTextBox.KeyDown += this.myTextBox_KeyDown; 
Questions connexes