从另一个表单中删除DataGridView行

时间:2012-10-05 20:09:32

标签: vb.net datagridview

我在从DataGridView中删除行时遇到问题。我有客户端的DataGridView。当我单击行时,将打开新表单(包含客户端数据)。在此表单中有一个“删除”按钮,其中单击Sub是此代码:

Form1.DataGridView1.Rows().RemoveAt(_personIndex)

问题是此代码不起作用。我尝试使用与datagridview相同的形式的代码,它工作。我非常感谢你的帮助。

2 个答案:

答案 0 :(得分:0)

访问DataGridView1的方式只有在共享DataGridView1时才有效。在客户端数据表单上,创建一个可以获取DataGridViewRows或DataGridView集合的构造函数,这样您就可以访问它。

答案 1 :(得分:0)

您应该使用第二个表单加载客户信息以触发事件并让主表单处理事件。这样您就可以直接访问datagridview。

为了做到这一点,你需要做四件事:

  1. 第二个表单上的事件声明为:

    Friend Event DeleteClient(ByRef rowID As Integer)

  2. 点击行时启动的第二个表单必须声明为withevents

    Dim WithEvents secondForm As ClientForm

  3. 一个事件处理程序,它将捕获要删除的行并将其从datagrid视图中删除

    Private Sub DeleteClient(ByRef rowID As Integer) Handles clientform.DeleteClient
        DataGridViw1.Rows().RemoveAt(rowID)
    End Sub
    
  4. 在删除按钮的按钮点击事件中调用RaiseEvent。

    RaiseEvent DeleteClient(idOfRowToBeRemoved)

  5. 每当您点击删除按钮时,一旦完成所有操作,就应该触发事件,并通过调用辅助表单的表单捕获该事件,并删除该行。