【问题标题】:handling function key press处理功能按键
【发布时间】:2009-11-10 10:43:37
【问题描述】:

我有一个带有 5 个按钮的 C# 表单。用户输入信息并根据功能键的按下执行特定操作。 F9-执行订单,F6-保存,F3-查找。

我已经添加了愚蠢的代码:

OnForm_Load

this.KeyUp += new System.Windows.Forms.KeyEventHandler(KeyEvent);

private void KeyEvent(object sender, KeyEventArgs e) //Keyup Event 
    {
        if (e.KeyCode == Keys.F9)
        {
            MessageBox.Show("Function F9"); 
        }
        if (e.KeyCode == Keys.F6)
        {
            MessageBox.Show("Function F6");
        }
        else
            MessageBox.Show("No Function");

    }

但什么也没发生

谢谢

【问题讨论】:

    标签: c#


    【解决方案1】:

    你需要设置

    KeyPreview=True
    

    为您的表格。否则按键被具有焦点的控件吞噬。

    【讨论】:

    • 同样在最后一个 Visual Studio C# 标准中,您需要将方法设置为 PreviewKeyDown 而不是 KeyPress 才能使功能键正常工作。
    • Ch3shire,使用 VS2017 我仍然在 KeyPress 上使用 KeyPreview=true 获取所有事件。我看到 OnKeyPreviewDown 上没有触发任何事件。该设置工作正常。
    猜你喜欢
    • 2018-10-27
    • 1970-01-01
    • 2011-04-03
    • 2021-05-15
    • 2012-01-24
    • 2020-12-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多