【问题标题】:Escape key close panel c# winforms [duplicate]退出键关闭面板c#winforms [重复]
【发布时间】:2015-07-17 20:17:11
【问题描述】:

如何在按下escape 键的同时关闭/隐藏panel

我在面板中搜索了keydown事件,但它不存在。

【问题讨论】:

标签: c# .net winforms


【解决方案1】:

面板控件无法聚焦,因此您无法处理按键按下事件。 尝试处理父控件的按键事件或更广泛的方式覆盖ProcessCmdKey方法:

protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
    // your logic here. For example:
    switch (keyData)
    {
        case Keys.Escape:
             //do something
             break;
    }

    return base.ProcessCmdKey(ref msg, keyData);
}

【讨论】:

  • 如何在上面的代码中添加退出键按下的逻辑
  • 我更新了答案
【解决方案2】:

处理 Control KeyPress/KeyDown 事件:

(Control)thePanel.KeyPress += new KeyPressEventHandler(ThePanel_KeyPress);

public void ThePanel_KeyPress(Object sender, KeyPressEventArgs e)
{
    if (e.KeyChar == (char)Keys.Escape) ... // Do something
}

【讨论】:

    猜你喜欢
    • 2013-04-14
    • 1970-01-01
    • 1970-01-01
    • 2011-07-12
    • 2018-01-10
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    相关资源
    最近更新 更多