关于vb.net 中datagridview问题
vb.net中datagridview敲回车键就会跳到下一个单元格,这个怎么取消?我现在是想在datagridview的keypress事件中写空格加回车弹出另一个窗体应...
vb.net 中datagridview敲回车键就会跳到下一个单元格,这个怎么取消?
我现在是想在datagridview的keypress事件中写空格加回车弹出另一个窗体应该怎么做?我用的是vs2005
如果方便的话最好留下QQ谢谢! 展开
我现在是想在datagridview的keypress事件中写空格加回车弹出另一个窗体应该怎么做?我用的是vs2005
如果方便的话最好留下QQ谢谢! 展开
1个回答
展开全部
我来了...我struggle...你知道的。我尝试了,有两种方法。
1.键盘事件handled法;拦截按键
在你的DataGridView_KeyDown 事件中加入
If e.KeyCode = Keys.Enter Then
e.Handled = True'意思是接管了这个按键信息
'这里加入你想要的事件比如
'dim frm as new form1
'frm.showdialog
End If
这种方法只能每个控件都写一次,好控制,但是有点麻烦。
2.单位类继承法。
在vs菜单里单击项目,添加类。然后确定。
在类中输入。
Public Class DataGridViewX
Inherits DataGridView
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
'这里是你想做的事情。
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
然后保存工程,生成。一定要生成。
然后回到form(可视化编辑模式,也就是你的主程序窗口,)
就好像你拖拽一个button一样,在工具箱里找到刚刚的
DataGridViewX
控件,然后拖拽,OK了,这个DataGridView具有特殊功能。
这个方法快捷有效~我就是这么做的~。
但是如果工程已经成型,数据庞大,不推荐这么做>_<~
这可是原创!~我不喜欢转载呵呵。
不用说QQ了这次,,,498483439我是新手。
1.键盘事件handled法;拦截按键
在你的DataGridView_KeyDown 事件中加入
If e.KeyCode = Keys.Enter Then
e.Handled = True'意思是接管了这个按键信息
'这里加入你想要的事件比如
'dim frm as new form1
'frm.showdialog
End If
这种方法只能每个控件都写一次,好控制,但是有点麻烦。
2.单位类继承法。
在vs菜单里单击项目,添加类。然后确定。
在类中输入。
Public Class DataGridViewX
Inherits DataGridView
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
If msg.WParam.ToInt32() = CInt(Keys.Enter) Then
'这里是你想做的事情。
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
然后保存工程,生成。一定要生成。
然后回到form(可视化编辑模式,也就是你的主程序窗口,)
就好像你拖拽一个button一样,在工具箱里找到刚刚的
DataGridViewX
控件,然后拖拽,OK了,这个DataGridView具有特殊功能。
这个方法快捷有效~我就是这么做的~。
但是如果工程已经成型,数据庞大,不推荐这么做>_<~
这可是原创!~我不喜欢转载呵呵。
不用说QQ了这次,,,498483439我是新手。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询