【发布时间】:2010-04-17 22:49:57
【问题描述】:
我有这个文本框,用于捕获首选项配置的键盘快捷键。我使用低级键盘钩子来捕获键并阻止它们采取行动,例如Windows 键,但 Alt 键仍然出现,使我的文本框失去焦点。
如何阻止 Alt 键,使焦点保持在我的文本框上不变?
【问题讨论】:
标签: c# winforms keyboard-hook
我有这个文本框,用于捕获首选项配置的键盘快捷键。我使用低级键盘钩子来捕获键并阻止它们采取行动,例如Windows 键,但 Alt 键仍然出现,使我的文本框失去焦点。
如何阻止 Alt 键,使焦点保持在我的文本框上不变?
【问题讨论】:
标签: c# winforms keyboard-hook
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.Alt)
{
e.Handled = true;
}
}
【讨论】:
您可以注册 keydown 事件并为传入的 args 执行以下操作:
private void myTextBox_KeyDown(object sender, KeyEventArgs e)
{
if(e.Alt)
e.SuppressKeyPress = true;
}
然后您像这样注册该活动:
this.myTextBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.myTextBox_KeyDown);
或者如果您不使用 C# 1.0,您可以简化为:
this.myTextBox.KeyDown += this.myTextBox_KeyDown;
【讨论】: