0

场景: 我创建了一个 Form( Mainform),它是应用程序的父表单或宿主表单——就像 Outlook 中的主屏幕一样。

Help在菜单栏项下创建了一个 BarItem( ),并F1使用 Shortcut 属性分配了一个快捷键。

但是如果获得焦点以外的任何其他形式Mainform,快捷键都达不到Mainform。我该如何解决这个问题?

我无法为从我的Mainform.

类似情况:例如,当您转到 Microsoft Outlook 中的任何窗口并按F1时,无论打开的表单如何,它都会启动一个帮助窗口。我想要类似的行为。

4

3 回答 3

1

正如我在评论中所说的那样,您可以实现这一点,只需使用KeyUp Event您的所有Form属性,属性必须是KeyPreview = true

    private void Form1_KeyUp(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.F1)
        {
            //do stuff
        }
    }
于 2013-02-08T07:16:28.103 回答
1

消息过滤器可能会有所帮助,并且是在您的情况下使用的适当方法。看看这些: http: //msdn.microsoft.com/en-us/library/system.windows.forms.imessagefilter.aspx http://msdn.microsoft.com/en-us/library/system.windows .forms.application.addmessagefilter.aspx

这是向上和向下箭头键的消息过滤器示例 https://stackoverflow.com/a/8257039/818321

于 2013-02-18T11:55:18.160 回答
1

在主窗体(如果你愿意的话,父窗体)确保属性KeyPreview设置为 true

于 2013-02-08T06:51:59.477 回答