1

在我的(未绑定的)DataGridView 中,有些单元格是可编辑的,有些则不是。当我点击一个可编辑的单元格时,焦点就在那里,我可以写任何东西。然后,如果我按 TAB 键,焦点将转到下一个单元格。但如果输入的值无效,我可以检查事件 Grid_CellValidating 中的值并使用e.Cancel = True取消更改。如果我这样做,焦点将停留在同一个单元格中等待有效值,而不是更改当前单元格。

直到这里一切都按预期工作。

我现在需要的是,从一个新的模式窗口中,我可以选择一个值,将此值设置为父窗体中网格的一个单元格,然后关闭模式窗口。

这可行,但我不想只是将值设置为单元格。我还想将单元格设置为“编辑模式”。我的意思是“编辑模式”表示选择单元格内容的状态,如果您尝试更改值,则会触发 Grid_CellValidating 事件,如果该值无效,则 Grid_CellValidating 事件中的逻辑可以检查它以确定它是否有效或不...

我没有成功。这是我试图用来使其工作的代码。

myGrid.Rows(myGrid.Rows.Count - 1).Cells("EID").Value = 1
myGrid.Focus()
myGrid.CurrentCell = myGrid("EID", myGrid.Rows.Count - 1)
myGrid.BeginEdit(True)

但这绝对行不通。

事实上,重点甚至不在 Grid 上。我可以在单元格中看到值 1,但焦点不存在。例如,如果我按下 TAB 键,我可以看到焦点在另一个控件上,而不是在 Grid 中。

我期望的是:如果值 1 无效,则 CellValidating 事件会触发并完成工作......

你知道我应该怎么做才能得到我需要的行为吗?

4

0 回答 0