怎么屏蔽datagridview的enter键 在datagridview中默认情况下,按了enter键会跳到下一行,但是不我想这么做,我想把enter屏蔽掉,不执行。怎么做啊?我在keypress中写了e.Handle = true;不行啊。请教你们 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.SuppressKeyPress = true; } } private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { //e.SuppressKeyPress = true; e.Handle = true;//这样也行 } } keypress换成KeyDown就OK了更正:e.Handled = true; 一个很奇怪的现象,为什么keydown就行了呢? private void dataGridView1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { e.Handled = false ; } } KeyPress是这个控件有获得焦点后再按某个键发生 KeyDown 在控件有焦点的情况下按下键时发生。 (从 Control 继承。) KeyPress 在控件有焦点的情况下按下键时发生。 (从 Control 继承。) msdn上这么说。键事件按下列顺序发生: KeyDown KeyPress KeyUp 若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。某些键,如 Tab、Return、Esc 和箭头键,由控件自动处理。为使这些键引发 KeyDown 事件,必须在窗体上的每个控件中重写 IsInputKey 方法。用于重写 IsInputKey 的代码需要确定是否按下了某个特殊键,并且需要返回一个 true 值。非字符键不会引发 KeyPress 事件;但非字符键却可以引发 KeyDown 和 KeyUp 事件。使用 KeyChar 属性在运行时对键击进行取样,并且使用或修改公共键击的子集。若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。我个人认为,你在keypress事件里写不行可能因为datagridview的响应回车移动焦点的方法在keydown后,keypress前写的。 简单的事件、委托代码无法编译通过 在用vs2008做竞赛系统的时候遇到的几个小问题 求一正则表达式 想为用户提供一个修改表结构的界面 【求救】关于MSMQ插入位置的问题,在线等~~~ 为什么这样? 那位大侠给一个OUTLOOK或其他好看的菜单的JS及在ASPX中调用的例子 哪位牛人能帮一下(大放分)? C#有关线程的语法问题 winform中如何把datagrid中用户选中的多行删除? C#异常处理 "多线程跨窗体传值?"
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.SuppressKeyPress = true;
}
}
{
if (e.KeyCode == Keys.Enter)
{
//e.SuppressKeyPress = true;
e.Handle = true;//这样也行
}
}
更正:e.Handled = true;
private void dataGridView1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
e.Handled = false ;
}
}
KeyPress 在控件有焦点的情况下按下键时发生。 (从 Control 继承。) msdn上这么说。
键事件按下列顺序发生:
KeyDown
KeyPress
KeyUp
若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。某些键,如 Tab、Return、Esc 和箭头键,由控件自动处理。为使这些键引发 KeyDown 事件,必须在窗体上的每个控件中重写 IsInputKey 方法。用于重写 IsInputKey 的代码需要确定是否按下了某个特殊键,并且需要返回一个 true 值。非字符键不会引发 KeyPress 事件;但非字符键却可以引发 KeyDown 和 KeyUp 事件。
使用 KeyChar 属性在运行时对键击进行取样,并且使用或修改公共键击的子集。
若要仅在窗体级别处理键盘事件而不允许其他控件接收键盘事件,请将窗体的 KeyPress 事件处理方法中的 KeyPressEventArgs.Handled 属性设置为 true。我个人认为,你在keypress事件里写不行可能因为datagridview的响应回车移动焦点的方法在keydown后,keypress前写的。