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

时间:2017-03-22 21:20:38

标签: c# winforms

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

2 个答案:

答案 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();
}