0

ダイアログ フォームを使用して新しいレコードを追加するときに、datagirdview を更新しようとしています。datagirdview を更新する方法を知りたいです。私は 2 つの Win Forms を持っています。フォームAはFrmContactDetailListと呼ばれ、SQLサーバーからのデータを表示しているデータグリッドビューを持っています。以下のコードの最初のブロックは、データをグリッドにバインドするために使用されます。これはフォーム ロード イベントで指定され、このフォームにも "Add New Record" というボタンがあります。このボタンを押すと、別のフォームを開く勝利フォームが開きます。以下は、ボタンクリックイベントでこれを開くために使用したコードです。

これにより、フォーム 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
4

2 に答える 2

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

潜水艦の外でそれらを宣言します。だからあなたはこれを持っているべきです:

Dim BindData as VoucherClass
Dim dt as DataTable

Sub GetContactList()
        BindData = New VoucherClass
        dt = BindData .Get_Client_List
        DataGridView.DataSource = dt
End Sub
于 2012-12-07T17:35:24.913 に答える
0

これを試してください:代わりにFrmNewContact.ShowDialog()
If FrmNewContact.ShowDialog() = DialogResult.OK Then
Me.DataFridView.Refresh()
End IF
、モーダルの閉じるアクションでダイアログ結果のセッターを含める必要がある場合があります。
Me.DialogResult = DialogResult.OK
Me.Close()

于 2013-09-04T03:52:55.057 に答える