【问题标题】:Remove row of DataGridView from another form从另一个窗体中删除 DataGridView 行
【发布时间】:2012-10-05 20:09:31
【问题描述】:

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

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

问题是这段代码不起作用。我以与 datagridview 相同的形式尝试了此代码并且它有效。我将非常感谢您的帮助。

【问题讨论】:

    标签: vb.net datagridview


    【解决方案1】:

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

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

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

      Friend Event DeleteClient(ByRef rowID As Integer)

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

      Dim WithEvents secondForm As ClientForm

    3. 一个事件处理程序,它将捕获被删除的行并将其从数据网格视图中删除

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

      RaiseEvent DeleteClient(idOfRowToBeRemoved)

    一旦一切就绪,每次单击删除按钮时,事件应该被触发并被调用辅助表单的表单捕获,并且应该删除该行。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-23
        • 1970-01-01
        • 2022-10-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-02-13
        相关资源
        最近更新 更多