如何在关闭对话框窗体时刷新DataGridView

时间:2012-12-07 17:09:31

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

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

这将打开表单B 。表单称为 FrmClientDetails 。此表单将包含一个文本框和一个保存按钮。因此,一旦我在文本框中输入新名称并按保存,我希望更新表单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

2 个答案:

答案 0 :(得分:0)

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

编辑:

处理FrmNewContact的Closing事件。您可以刷新该子目录中的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

答案 1 :(得分:0)

试试这个:而不是FrmNewContact.ShowDialog()
If FrmNewContact.ShowDialog() = DialogResult.OK Then
Me.DataFridView.Refresh() End IF你可能需要包括对话框的setter结果为你的模态的结束动作。
Me.DialogResult = DialogResult.OK
Me.Close()