【问题标题】:WinForms: How to prevent textbox from handling alt key and losing focus?WinForms:如何防止文本框处理 alt 键并失去焦点?
【发布时间】:2010-04-17 22:49:57
【问题描述】:

我有这个文本框,用于捕获首选项配置的键盘快捷键。我使用低级键盘钩子来捕获键并阻止它们采取行动,例如Windows 键,但 Alt 键仍然出现,使我的文本框失去焦点。

如何阻止 Alt 键,使焦点保持在我的文本框上不变?

【问题讨论】:

    标签: c# winforms keyboard-hook


    【解决方案1】:
    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.Alt)
        {
            e.Handled = true;
        }
    }
    

    【讨论】:

    • 哈,谈谈错过显而易见的事情 :) 谢谢!
    【解决方案2】:

    您可以注册 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;
    

    【讨论】:

      猜你喜欢
      • 2017-08-20
      • 2018-12-05
      • 2013-05-25
      • 2014-06-15
      • 2013-04-08
      • 2013-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多