.net 从DataGridView中删除行
我有一个包含7个单元格的DataGridView,在我进入的每个单元格中,如果我按escape,则当前行将被删除,这是我创建的一个名为.net 从DataGridView中删除行,.net,vb.net,datagridview,.net,Vb.net,Datagridview,我有一个包含7个单元格的DataGridView,在我进入的每个单元格中,如果我按escape,则当前行将被删除,这是我创建的一个名为公共事件EscapeOnFirstRowPressed的事件,并将控件带到每个初始状态 这个过程的总体思路是当所有单元都完成时 将数据写入SQL表并 删除当前行,以便用户现在可以导入新数据 由于写过程是正常的,我将兴趣转移到删除行 我说此操作需要从RowValidatedsub或从CellEnter调用它(在我离开当前行并到达下一行时发生)。但如果我把命令放在
公共事件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."}
我正在尝试另一个过程来完成此操作。我尝试通过发出以下命令来模拟按键动作
Dim myKeyData As System.Windows.Forms.Keys
Dim myMsg As System.Windows.Forms.Message
myKeyData = Keys.Escape
ProcessCmdKey(myMsg, myKeyData)
但当指针指向执行我按Esc键时执行的相同指令时,我收到了相同的错误。您可以在事件处理程序完成后,通过调用
BeginInvoke来执行下一个消息循环中的代码。您可以在事件处理程序完成后,在下一个消息循环中执行代码,请致电BeginInvoke
感谢您的关注,请更详细。我什么时候做?在周末?还是在那之后?请您帮助我如何使用BeginInvoke,因为我尝试过使用BeginInvoke,但没有取得任何积极的结果。请致电BeginInvoke
,并传递一名删除该行的代表。您是镇上最好的,成功地解决了我的问题。我希望有能力给你们更多的选票。再次感谢您的关注,请更具体一些。我什么时候做?在周末?还是在那之后?请您帮助我如何使用BeginInvoke,因为我尝试过使用BeginInvoke,但没有取得任何积极的结果。请致电BeginInvoke
,并传递一名删除该行的代表。您是镇上最好的,成功地解决了我的问题。我希望有能力给你们更多的选票。再次感谢