怎么屏蔽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);
}
单步跟踪一下,为什么回车键值没起作用
------解决方案--------------------
你每个消息都拦截一下,看看效果再决定呗
------解决方案--------------------通过 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;
}