【发布时间】:2015-07-17 20:17:11
【问题描述】:
如何在按下escape 键的同时关闭/隐藏panel?
我在面板中搜索了keydown事件,但它不存在。
【问题讨论】:
-
“我在面板中搜索了 keydown 事件,但它不存在” - Guessed you missed this then
如何在按下escape 键的同时关闭/隐藏panel?
我在面板中搜索了keydown事件,但它不存在。
【问题讨论】:
面板控件无法聚焦,因此您无法处理按键按下事件。
尝试处理父控件的按键事件或更广泛的方式覆盖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);
}
【讨论】:
处理 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
}
【讨论】: