首页 > 解决方案 > 当我使用 Vb.Net 以第二种形式添加记录时,如何从主窗体刷新 datagridview 中的数据

问题描述

我使用了刷新但没有工作。感谢帮助

Private Sub frm_Add_Teacher_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
        frm_View_Teacher.Refresh()
End Sub

标签: vb.netdatagridview

解决方案


你把事情弄得太复杂了。只需在表单之间共享数据源

  • 做一个全新的项目;一个临时的
  • 将此代码粘贴到 Form1.vb 文件中所有内容的顶部:
Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Dim dt As New DataTable()
        dt.Columns.Add("A")
        dt.Rows.Add("One")
        dt.Rows.Add("Two")

        Dim dgv As New DataGridView
        Me.Controls.Add(dgv) 'add dgv to this form
        dgv.DataSource = dt

        Dim f2 = New Form2(dt)
        f2.Show()

    End Sub
End Class

Public Class Form2
    Inherits Form
    Public Sub New(d As DataTable)
        Dim dgv2 As New DataGridView
        Me.Controls.Add(dgv2) 'add a dgv to this form too
        dgv2.DataSource = d
    End Sub
End Class
  • 运行项目

玩转网格,添加和更改数据。您将看到表单(一个在另一个之后)如何显示相同的数据,并且您将看到当您在一个表单中编辑该数据时,其他表单如何更新。

这是因为它们共享相同的数据模型。一件事改变了模型,另一件事看到并更新


推荐阅读