【问题标题】:How to refresh a DataGridView when a dialog form is closed对话框窗体关闭时如何刷新 DataGridView
【发布时间】:2012-12-07 17:09:31
【问题描述】:

当我使用对话框表单添加新记录时,我正在尝试刷新 datagirdview。我想知道如何刷新我的datagirdview。我有两个获胜表格。 Form A 被称为 FrmContactDetailList,它有一个 datagridview,我正在显示来自 sql server 的数据。下面的第一个代码块用于将数据绑定到网格。这是在表单加载事件中给出的,在这个表单中我有一个名为“添加新记录”的按钮。一旦我按下此按钮,它就会打开一个正在打开另一个表单的获胜表单。下面是我用来通过按钮单击事件打开它的代码。

这将打开Form B。表单名为 FrmClientDetails。此表单将有一个文本框和一个保存按钮。因此,一旦我在文本框中输入新名称并按保存,我希望更新 Form A 中的 datagirdview。并在我关闭表格 B 后显示新记录。我该如何实现这一点。

此代码用于绑定datagridview。我已经给出了这是表单加载事件。

 Sub GetContactList()
        Dim BindData As New VoucherClass
        Dim dt As DataTable = BindData .Get_Client_List
        DataGridView.DataSource = dt 
 End Sub


 Private Sub FrmContactDetailsList_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        GetContactList()
 End Sub

我已经使用此代码打开对话框输入新数据。

  Private Sub BtnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnOpen.Click
        Dim FrmNewContact As New FrmClientDetails
        FrmNewContact.Owner = Me
        FrmNewContact.ShowDialog()
    End Sub

【问题讨论】:

  • Binddata 和 dt 是局部变量。您不将它们提供给新表单,我猜新记录仅添加到数据库中。这意味着您无需对 dgv 进行任何更改,但您希望在表单关闭时它会神奇地更改。这是你的问题。如果不是,我们需要更多代码。这是不确定的。

标签: sql vb.net sql-server-2005 datagridview


【解决方案1】:

当绑定数据发生变化时,它会自动反映到绑定的数据网格视图中。

编辑:

处理 FrmNewContact 的 Closing 事件。你可以在那个 sub 中刷新你的 datagridview。

Dim WithEvents dialog As New FrmNewContact
Sub done() Handles dialog.FormClosed
    Me.DataGridView1.Refresh()
End Sub

下一次编辑:

Dim BindData As New VoucherClass
Dim dt As DataTable = BindData .Get_Client_List

在 sub 之外声明它们。所以你应该有这个:

Dim BindData as VoucherClass
Dim dt as DataTable

Sub GetContactList()
        BindData = New VoucherClass
        dt = BindData .Get_Client_List
        DataGridView.DataSource = dt
End Sub

【讨论】:

  • 不,它不会改变我需要关闭具有 datagidview 的表单并再次打开,然后我会更新更改。但我需要在不关闭表单的情况下发生这种情况
  • 我尝试了很多方法,但我无法做到。你能给我看一些示例代码吗?
  • 请注意我已经给出了更多解释。请帮助我
  • 我已经更新了表单加载偶数代码。我的 Grid 在 Form A 中。我在表单 B 中有一个文本框和一个按钮
【解决方案2】:

试试这个:代替FrmNewContact.ShowDialog()
If FrmNewContact.ShowDialog() = DialogResult.OK Then
Me.DataFridView.Refresh()
End IF
您可能需要在模态的关闭操作中为对话框结果包含一个设置器.
Me.DialogResult = DialogResult.OK
Me.Close()

【讨论】:

    猜你喜欢
    • 2011-01-24
    • 2015-03-07
    • 1970-01-01
    • 1970-01-01
    • 2013-04-14
    • 1970-01-01
    • 2023-03-16
    • 2016-05-23
    • 1970-01-01
    相关资源
    最近更新 更多