当用户点击按钮进入按钮时(而不是鼠标点击按钮?),这是一种简单的取消点击事件的方法吗?
我尝试过:
private void button3_Click(object sender, EventArgs e)
{
KeyEventArgs ke = e as KeyEventArgs;
if (ke != null)
{
if (ke.KeyCode == Keys.Enter)
{
return;
}
}
}
但是凯是空的
答案 0 :(得分:3)
public void btnClick(object sender, EventArgs e)
{
bool IsMouse = (e is System.Windows.Forms.MouseEventArgs);
// If not mouse, they hit spacebar or enter
}
答案 1 :(得分:2)
是的,它将为空。因为EventArgs
不是KeyEventArgs
KeyEventArgs
将作为参数传递给KeyDown
或KeyUp
个事件。你搞砸了。
答案 2 :(得分:1)
你可以做这样的事情
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
}
答案 3 :(得分:0)
你可以处理按钮的KeyPress事件并禁用或忽略那里的输入键,而不是按下按钮返回
答案 4 :(得分:0)
protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
{
if ((keyData & Keys.KeyCode) == Keys.Enter)
{
SendKeys.Send("{Tab}");
return true;
}
return false;
}