如何使用c#处理窗体上的alt键事件?

如何使用c#处理窗体上的alt键事件?,c#,forms,C#,Forms,下面的代码已经运行了两次,但在修改了底层表单控件后完全停止运行。我看不出代码有什么问题,也看不出更改底层控件对表单有什么影响 要使ProcessCmdKey可靠工作,我必须做什么 namespace xyz { public partial class DaysNHours : Form { public DaysNHours() { this.KeyPreview =

下面的代码已经运行了两次,但在修改了底层表单控件后完全停止运行。我看不出代码有什么问题,也看不出更改底层控件对表单有什么影响

要使ProcessCmdKey可靠工作,我必须做什么

    namespace xyz
    {
        public partial class DaysNHours : Form
        {
            public DaysNHours()
            {
                this.KeyPreview = true;

                InitializeComponent();
            }

            // Detect alt-key presses directed to checkboxes and time boxes

            protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if (keyData == (Keys.Control | Keys.F))
                {
                    MessageBox.Show("What the Ctrl+f?");
                    return true;
                }
                return base.ProcessCmdKey(ref msg, keyData);
            }
        }
    }

你到底改了什么?你把我的答案复制/粘贴得很好。但是,你应该改变它,按键。控件不会识别Alt键。Jayce-我希望它能识别,但当我按下任何Alt组合时,我会听到一声嘟嘟声。我的表单上设置了很多alt键组合。Hans-我不确定我是否掌握了你想要的要点,这就是为什么我从你的帖子开始解释的原因。一旦这一部分开始工作,我就打算实现使表单工作所需的代码。不过,第一件事是获取任何要通过我的processcmdkey模块的密钥。现在,模块被完全绕过。我有一种明显的感觉,我在VisualStudio中设置了禁用alt键功能的东西,但不知道会是什么。