我试图找出当我按下插入时如何使我的表单不可见,当我再次按下插入时,它使表单可见。我试图找出方法,但似乎没有人能找到我想要的东西。
答案 0 :(得分:0)
一个简单的例子,说明如何通过处理Insert键来操作Form的可见性:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_KeyDown(object sender, KeyEventArgs e)
{
// Don't forget to enable Form.KeyPreview in order to receive key down events
if (e.KeyCode == Keys.Insert)
{
Visible = false;
}
}
}
您可以将Visible
设置回true
以使其可见。但是,您将无法执行此操作,因为Form变得不可见,并且不再接收按键事件。在这种情况下,您可以尝试使用例如GlobalHotKey描述的here库来设置全局热键。另请注意,将单个密钥(例如,插入)设置为全局热键是没有意义的,因为在大多数情况下系统或其他应用程序将捕获它。
答案 1 :(得分:0)
你可以这样做:
private void InfoForm_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Insert) Opacity = Opacity == 0 ? 1 : 0;
}
为此,您需要启用表格的KeyPreview
属性!
但是,如果没有其他计划收到 focus
>,那么重新开启可见性(或准确地关闭不透明度)将仅工作强>在此期间。
如果可能发生这种情况,您需要设置global keyboard hook;确保重新传递插入键,否则许多其他程序将无法正常工作..总而言之,我不推荐它..
我不确定整个想法何时有意义。一个答案可能是显示或隐藏弹出数据窗口,该窗口仅用于显示从基础数据窗口弹出的一些附加信息。
在这种情况下,只要停用它就可以关闭窗口:
private void InfoForm_Deactivate(object sender, EventArgs e)
{
this.Close();
}