我想在usercontrol中捕获父窗体的keyup事件。我使用ProcessCmdKey,但它只是给我keydown事件,并没有在keyup事件中引发。我该怎么做?在用户控制中如何捕捉Keyup事件?
更新:我想捕捉窗体的keyup事件。因为在控制集中时引发Control.KeyUp。
public partial class ExtendedButton : Button
{
const int WM_KEYDOWN = 0x100;
public ExtendedButton()
{
InitializeComponent();
}
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if (msg.Msg == WM_KEYUP && keyData == (Keys.NumPad0))
{
MessageBox.Show("hi");
}
return base.ProcessCmdKey(ref msg, keyData);
}
}
为什么这么复杂?请参阅http://stackoverflow.com/questions/18604633/catch-keyup-event-on-winform-c-sharp – user2864740 2014-09-11 04:20:07
@ user2864740我想在usercontrol中使用keyup事件而不是以 – ArMaN 2014-09-11 04:23:33
的形式存在[Control.KeyUp]( http://msdn.microsoft.com/en-us/library/system.windows.forms.control.keyup(v=vs.110).aspx)..仍然不知道什么是复杂的。 – user2864740 2014-09-11 04:24:43