13
我有一个包含很多控件的父窗体。我想要做的是过滤该表单的所有按键。麻烦的是,如果焦点在窗体上的某个控件上,那么父窗体不会获得按键事件,那么如何捕获按下按下事件?如何捕捉一个C#.NET窗体上的按键新闻
我有一个包含很多控件的父窗体。我想要做的是过滤该表单的所有按键。麻烦的是,如果焦点在窗体上的某个控件上,那么父窗体不会获得按键事件,那么如何捕获按下按下事件?如何捕捉一个C#.NET窗体上的按键新闻
设置的KeyPreview到真正的窗体上,你会赶上他们:MSDN
myForm : Form
{
public ChildForm()
{
KeyPress += KeyPressHandler;
}
public KeyPressHandler(object sender, KeyPressEventArgs e)
{
if (_parent != null)
{
_parent.NotifyKeyPress(e);
}
}
}
这样会更你的情况套房
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (keyData == Keys.F1)
{
MessageBox.Show("You pressed the F1 key");
return true; // indicate that you handled this keystroke
}
// Call the base class
return base.ProcessCmdKey(ref msg, keyData)
}