对于我使用Visual Basic 2010 Express制作的程序,我希望默认隐藏(最小化)我的表单。我发现了如何做到这一点,所以这不是问题。
但是当我按下“F12”键时,我希望再次显示该表格。这里的一个难点是没有关注表格。有没有人知道如何在不关注应用程序的情况下再次显示表单?
答案 0 :(得分:1)
检查这些链接(不同的方法 - 选择你的风格):
编辑:关于最后一个,这是一个简化的例子,很容易重现。在一个全新的WinForms应用程序中,在表单上放一个计时器,在设计器中设置其Enabled = True,然后将以下内容粘贴到表单的代码中:
Public Class Form1
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Int32) _
As Short
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
If GetAsyncKeyState(Keys.F12) Then Me.WindowState = FormWindowState.Normal
End Sub
End Class
启动您的应用,最小化表单并按F12。这会带来你的表格。您可以专注于VS以外的其他内容,以确认它是按预期工作的。我尝试使用VS 2013 Premium RC和Google Chrome(其中F12提出了表单并打开了开发工具)。
考虑到代码的数量,与其他答案相比,这将是我最喜欢的方法。对于经验丰富的代码专家可能会发现的任何缺点 - 请随时发表评论。
注意:如果您使用链接中的功能签名,则会获得pinvoke stack imbalance。
答案 1 :(得分:0)
看看这个全局键盘钩子库。我在托盘中使用它,直到按下某组键。
只需在表单的构造函数中创建GlobalKeyboardHook类的私有实例。
private GlobalKeyboardHook gkh = new GlobalKeyboardHook();
然后添加“钩住”键并连接事件处理程序
gkh.HookedKeys.Add(Keys.LControlKey);
gkh.HookedKeys.Add(Keys.RControlKey);
gkh.HookedKeys.Add(Keys.Down);
gkh.KeyDown += new System.Windows.Forms.KeyEventHandler(gkh_KeyDown);
gkh.KeyUp += new System.Windows.Forms.KeyEventHandler(gkh_KeyUp);
在事件处理程序中检查要按下的正确键,然后再次显示您的表单。