Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 从DataGridView中删除行_.net_Vb.net_Datagridview - Fatal编程技术网

.net 从DataGridView中删除行

.net 从DataGridView中删除行,.net,vb.net,datagridview,.net,Vb.net,Datagridview,我有一个包含7个单元格的DataGridView,在我进入的每个单元格中,如果我按escape,则当前行将被删除,这是我创建的一个名为公共事件EscapeOnFirstRowPressed的事件,并将控件带到每个初始状态 这个过程的总体思路是当所有单元都完成时 将数据写入SQL表并 删除当前行,以便用户现在可以导入新数据 由于写过程是正常的,我将兴趣转移到删除行 我说此操作需要从RowValidatedsub或从CellEnter调用它(在我离开当前行并到达下一行时发生)。但如果我把命令放在

我有一个包含7个单元格的DataGridView,在我进入的每个单元格中,如果我按escape,则当前行将被删除,这是我创建的一个名为
公共事件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
,并传递一名删除该行的代表。您是镇上最好的,成功地解决了我的问题。我希望有能力给你们更多的选票。再次感谢