VB.NET将向datatable中添加2行,而不是仅添加1行

VB.NET将向datatable中添加2行,而不是仅添加1行,vb.net,datatable,Vb.net,Datatable,代码如下: Private Sub AddNewDgvRow(dgv As DataGridView) Dim dt As DataTable = dgv.DataSource.DataSource.Client Dim myRow As DataRow = dt.NewRow dt.Rows.Add(myRow) <-------- adds 2 rows at this point End S

代码如下:

    Private Sub AddNewDgvRow(dgv As DataGridView)
      Dim dt As DataTable = dgv.DataSource.DataSource.Client
      Dim myRow As DataRow = dt.NewRow
      dt.Rows.Add(myRow)                      <-------- adds 2 rows at this point
    End Sub
Private子AddNewDgvRow(dgv作为DataGridView)
Dim dt As DataTable=dgv.DataSource.DataSource.Client
将myRow作为DataRow=dt.NewRow进行调整
dt.Rows.Add(myRow)是否设置了“允许用户添加行”?这是真的,不需要代码来添加行。因此,DataGridView会自动添加它,然后您的代码(在AddNewDgvRow中)会再次添加它


正如您在关于CellEnter事件的原始帖子的评论中所提到的,有时程序员可能想要使用DataGridView的内置功能,有时我们想要更多的控制。

还有其他东西在添加第二行。你在哪种情况下调用这个方法?只是准备更新帖子。我在DGV中点击一个新的记录行并在那里捕捉到它。单步执行代码--一行生成两条记录。我应该进一步深入代码——刚才是事后考虑。然而,我只是创建了一个按钮并从那里运行例程,我没有这个问题。在进一步调查后会回来的。谢谢你的快速回复。不知道是什么。。。单击新行将触发行验证,其中的语句:“Dim dgv As DataGridView=DirectCast(sender,DataGridView)”将调试监视列表上的dgv.RowCount从x增加到x+2。那是我知道的最深的。我可以通过使用另一个控件来实现上面的方法来解决这个问题,但我仍然很好奇为什么设置了“允许用户添加行”?这是真的,不需要代码来添加行。因此,DataGridView会自动添加它,然后您的代码(在AddNewDgvRow中)会再次添加它。@Phaedra——是的,就是这样。我知道这一点,但我捕获了一个CellCenter过程,该过程在逻辑假设存在记录时创建了一个错误,因此我开始创建一个单独的新记录例程来解决这个问题。谢谢你的指导!