当我使用对话框表单添加新记录时,我正在尝试刷新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
答案 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()