我想在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