繁体   English   中英

如何通过按插入使我的表单可见/不可见?

[英]How can I make my Form visible/invisible by pressing insert?

我试图找出如何在按下插入键时使表格不可见,而当我再次按下插入键时使表格可见。 我试图找出方法,但似乎没人能找到我想要的东西。

一个简单的示例,说明如何通过向下按下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库来设置全局热键。 还要注意,将单个键(例如,Insert)设置为全局热键是没有意义的,因为在大多数情况下,系统或其他应用程序会捕获它。

你可以这样做:

private void InfoForm_KeyDown(object sender, KeyEventArgs e)
{
    if (e.KeyCode == Keys.Insert) Opacity = Opacity == 0 ? 1 : 0;
}

为此,您需要打开Form的KeyPreview属性!

但是, 只有在此期间没有其他程序获得focus ,重新打开可见性(或者精确地说是关闭不透明度) 有效。

如果发生这种情况,您需要设置一个全局键盘挂钩 请确保再次传递插入键,否则许多其他程序将无法正常使用。.总之,我不建议这样做。

我不确定整个想法何时才有意义。 一个答案可能是显示或隐藏一个弹出数据窗口,该窗口仅意味着显示从基本数据窗口弹出的一些其他信息。

在这种情况下,只要停用该窗口,就可以将其关闭:

private void InfoForm_Deactivate(object sender, EventArgs e)
{
    this.Close();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM