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
Vb.net 从另一个窗体中删除DataGridView的行_Vb.net_Datagridview - Fatal编程技术网

Vb.net 从另一个窗体中删除DataGridView的行

Vb.net 从另一个窗体中删除DataGridView的行,vb.net,datagridview,Vb.net,Datagridview,我无法从DataGridView中删除行。我和客户有DataGridView。当我单击行时,新表单打开(带有客户端数据)。此表单中有一个“删除”按钮,其中click Sub为以下代码: Form1.DataGridView1.Rows().RemoveAt(_personIndex) 问题是这段代码不起作用。我用与datagridview相同的形式尝试了这段代码,它成功了。我将非常感谢你的帮助 只有在共享DataGridView1的情况下,访问DataGridView1的方式才会起作用。在客户

我无法从DataGridView中删除行。我和客户有DataGridView。当我单击行时,新表单打开(带有客户端数据)。此表单中有一个“删除”按钮,其中click Sub为以下代码:

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

问题是这段代码不起作用。我用与datagridview相同的形式尝试了这段代码,它成功了。我将非常感谢你的帮助

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

您应该让加载客户信息的第二个表单触发事件,并让主表单处理事件。通过这种方式,您可以直接访问datagridview

要做到这一点,您需要四件事:

  • 第二种形式的事件声明为:

    好友事件删除客户端(ByRef rowID为整数)

  • 在单击行时启动的第二个表单必须声明为
    withevents

    Dim以事件二级表单作为客户端表单

  • 一个事件处理程序,用于捕获正在删除的行并将其从datagrid视图中删除

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

    RaiseEvent DeleteClient(idOfRowToBeRemoved)

  • 一旦所有这些都准备就绪,每次单击delete按钮时,事件应该被触发,并被调用辅助窗体的窗体捕获,并且该行应该被删除