按下回车键时中断button_click事件
本文关键字:button click 事件 中断 回车 | 更新日期: 2023-09-27 18:32:44
当用户点击回车按钮(而不是鼠标点击按钮)时取消点击事件的简单方法吗?
我尝试过:
private void button3_Click(object sender, EventArgs e)
{
KeyEventArgs ke = e as KeyEventArgs;
if (ke != null)
{
if (ke.KeyCode == Keys.Enter)
{
return;
}
}
}
但 ke 为空
public void btnClick(object sender, EventArgs e)
{
bool IsMouse = (e is System.Windows.Forms.MouseEventArgs);
// If not mouse, they hit spacebar or enter
}
是的,它将为空。 因为EventArgs
不是KeyEventArgs
KeyEventArgs
将作为参数传递给KeyDown
或KeyUp
事件。你把事情搞砸了。
你可以做这样的事情
private bool flag = false;
private void button1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Return)
{
flag = true;
}
}
private void button1_Click(object sender, EventArgs e)
{
if (flag)
{
flag = false;
return;
}
//else do original task
}
您可以处理按钮的 KeyPress 事件并在那里禁用或忽略回车键,而不是在按钮单击中返回
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData & Keys.KeyCode) == Keys.Enter)
{
SendKeys.Send("{Tab}");
return true;
}
return false;
}