KeyEventArgs 没有响应按下退出按钮
KeyEventArgs not responding to pressing escape button
我有一个 WinForm 应用程序,我想在其中使用退出按钮关闭控件。我已经在 KeyPress 上创建了一个事件,当我使用除 Escape 之外的任何其他键时这都有效。
private void ProductsView_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char) Keys.B || e.KeyChar == (char)Keys.Escape)
{
//Magic happens
}
}
如果我按 'b' 一切正常,但如果我按 'Escape',则不会触发该事件(是的,我的退出按钮有效)。
我不知道是什么导致了这个问题,我也尝试过 KeyUp 和 KeyDown 事件。
您可以创建嵌套控件并覆盖方法 ProcessCmdKey:
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
switch (keyData)
{
case System.Windows.Forms.Keys.Escape:
{
//...magic
}
}
}
我有一个 WinForm 应用程序,我想在其中使用退出按钮关闭控件。我已经在 KeyPress 上创建了一个事件,当我使用除 Escape 之外的任何其他键时这都有效。
private void ProductsView_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char) Keys.B || e.KeyChar == (char)Keys.Escape)
{
//Magic happens
}
}
如果我按 'b' 一切正常,但如果我按 'Escape',则不会触发该事件(是的,我的退出按钮有效)。 我不知道是什么导致了这个问题,我也尝试过 KeyUp 和 KeyDown 事件。
您可以创建嵌套控件并覆盖方法 ProcessCmdKey:
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, System.Windows.Forms.Keys keyData)
{
switch (keyData)
{
case System.Windows.Forms.Keys.Escape:
{
//...magic
}
}
}