我必须将Windows窗体应用程序中的启动窗体设置为对用户完全不可见,然后处理f1键按下事件。
我使用以下代码将表单设置为不可见:
protected override void SetVisibleCore(bool value)
{
base.SetVisibleCore(false);
}
然后我注意到不再调用HelpRequestedEvent了......所以以下代码永远不会被调用...
this.HelpRequested += (sender, eventArgs) => { MessageBox.Show("Hi"); };
上面的代码已添加到表单的构造函数中。我现在正试图保持表单完全不可见(因为它与被覆盖的SetCoreVisibility
版本一样)并且还处理此HelpRequested
事件,有没有办法如何做到这一点?
答案 0 :(得分:1)
您可以使用计时器并检查F1键盘:
void Timer_Tick(object sender, EventArgs e)
{
if (Keyboard.IsKeyDown(Key.F1))
{
// do your stuff..
}
}
为了在WinForms程序中工作,您需要包含对PresentationCore'的引用。和' WindowsBase'还包括using System.Windows.Input;
有点黑客,imo。而且我不会重申关于一个用户如何看不到任何东西可以通过按F1
来实现任何目标的希望的问题。