VB.NET Datagridview - 修改当前单元格
Posted
技术标签:
【中文标题】VB.NET Datagridview - 修改当前单元格【英文标题】:VB.NET Datagridview - Modify currentcell 【发布时间】:2016-02-03 14:17:53 【问题描述】:这是我第一次提出问题,我会尽量说清楚。 我在 vb.net 中创建了一个包含 3 列和 5 行的 datagridview。 我的列包含作业标题。每行包含有关这些工作的信息:名字、姓氏、社会、电话号码、邮件。
看起来像:
| J1 | J2 | J3
----------------------------
firstname | x | y | z
lastname | x1 | y1 | z1
society | x2 | y2 | z2
phone number | x3 | y3 | z3
mail | x4 | y4 | z4
当我编辑作业 1 (x) 的名字时,我想通过按 Tab 键进入该作业 (x1) 的姓氏单元格。 目前,当我按 Tab 键时,我会输入第二个作业 (y) 的名字单元格。
我试图在 datagridview.CellEndEdit 事件之后更改当前单元格。我注意到单元格 (x1) 已被选中,但 tab 键将我编辑的当前单元格更改为“普通当前单元格”(y)。
如何防止 tab 键更改我编辑的当前单元格? 谢谢。
【问题讨论】:
你违反了惯例。为什么不水平排列行?您将无法以这种方式使用数据绑定。 我知道我不遵守约定,但我的经理想要这种功能。 【参考方案1】:尝试创建您自己的 DataGridView 控件,以便您可以覆盖 ProcessCmdKey 操作:
Public Class DataGridViewEx
Inherits DataGridView
Protected Overrides Function ProcessCmdKey(ByRef msg As Message, keyData As Keys) As Boolean
If keyData = Keys.Tab Then
Me.ProcessDownKey(keyData)
Return True
End If
Return MyBase.ProcessCmdKey(msg, keyData)
End Function
End Class
【讨论】:
谢谢LarsTech,它工作得很好!我用 currentCell 的编程修改替换了 Me.ProcessDownKey(keyData)。以上是关于VB.NET Datagridview - 修改当前单元格的主要内容,如果未能解决你的问题,请参考以下文章