【问题标题】:VB.NET Datagridview - Modify currentcellVB.NET Datagridview - 修改当前单元格
【发布时间】: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 键更改我编辑的当前单元格? 谢谢。

【问题讨论】:

  • 你违反了惯例。为什么不水平排列行?您将无法以这种方式使用数据绑定。
  • 我知道我不遵守约定,但我的经理想要这种功能。

标签: vb.net datagridview


【解决方案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)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多