读书人

如何屏蔽button对回车的响应

发布时间: 2013-04-21 21:18:07 作者: rapoo

怎么屏蔽button对回车的响应
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("a");
}

当Button获得焦点后,按回车或空格会响应点击事件,该怎么屏蔽?即按回车或空格不响应点击事件。
[解决办法]
拦截消息或用消息过滤器
[解决办法]
设置按钮获得焦点就立刻转移焦点,让回车或者空格无法激活按钮事件
[解决办法]
使用消息过滤!
[解决办法]
protected override void WndProc(ref Message m)
{
Trace.Write(m.ToString() + "\n");
if (m.WParam == (IntPtr)0xd
[解决办法]
m.WParam == (IntPtr)0x20)
{
return;
}
base.WndProc(ref m);
}

单步跟踪一下,为什么回车键值没起作用
[解决办法]

引用:
引用:
拦截消息或用消息过滤器
下面代码空格好使,按空格不会响应了,但是回车不行。


C# code
?



12345678910

protected override void WndProc(ref Message m) { Trace.Write(m.ToString() + "……


你每个消息都拦截一下,看看效果再决定呗
[解决办法]
通过 JQUERY获取按键值,如果是回车则return flase
[解决办法]
来晚了~
不过,过滤空格的方法用KeyDown不就好了吗?

private void button1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Space)
{
e.SuppressKeyPress = false;
}
}

[解决办法]
监视所有的keydown事件,判断如果是回车或者空格就屏蔽

private void 页面名字_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{

if (e.KeyCode.ToString() == "Return")
{
return;
}


else if (e.KeyValue.ToString() == "")
{
return;
}
}


[解决办法]
引用:
来晚了~
不过,过滤空格的方法用KeyDown不就好了吗?
C# code?1234567 private void button1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Space) { ……
LS可行

读书人网 >C#

热点推荐