【发布时间】:2011-02-17 09:18:39
【问题描述】:
我有一个包含 7 个单元格的 DataGridView,在我进入的每个单元格中,如果我按下转义键,当前行将被删除,而我创建的名为 Public Event EscapeOnFirstRowPressed 的事件没有问题,并将控制权带到每个初始状态。
这个过程的总体思路是当所有的单元格都满足时
- 将数据写入 SQL 表并
- 删除当前行,以便用户现在可以导入新数据。
由于写入过程正常,我将兴趣转移到删除该行。
我说这个动作需要从RowValidated sub 或CellEnter 调用它(这发生在我离开当前行并进入下一行时)。但是如果我把命令放在任何一个地方
If Not DGV.CurrentCell.EditedFormattedValue = "" Then
If Not DGV.Rows(RowIndex).IsNewRow Then
DGV.Rows.RemoveAt(RowIndex)
DGV.Refresh()
End If
ElseIf DGV.CurrentCell.EditedFormattedValue = Nothing Then
If Not DGV.Rows(RowIndex).IsNewRow Then
DGV.Rows.RemoveAt(RowIndex)
DGV.Refresh()
End If
End If
我收到以下错误
DGV.Rows.RemoveAt(0) {"Operation cannot be performed in this event handler."}
我正在尝试此操作的另一个过程。我尝试通过给出以下命令来模拟 KeyPress 操作
Dim myKeyData As System.Windows.Forms.Keys
Dim myMsg As System.Windows.Forms.Message
myKeyData = Keys.Escape
ProcessCmdKey(myMsg, myKeyData)
但是当指针开始执行与我按 Esc 键时执行的相同指令时,我收到相同的错误。
【问题讨论】:
标签: .net vb.net datagridview