0

サブルーチンを呼び出して、別の開いているフォームのデータ グリッドを更新できますか?

このアプリには、2 つのデータ グリッドを含むフォームがあります。ユーザーがグリッドの 1 つをダブルクリックすると、データの詳細を表示する別のフォームが開きます。ユーザーが詳細を変更した後、ユーザーは保存ボタンをクリックします。

詳細フォームの Closing イベントにこのコードを配置しました。

Private Sub FormParents_FormClosing(sender As System.Object, e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing

    FormParentsAndStudents.RefreshDataGrids()
End Sub

テストのために msgbox をそこに配置したため、コードは実行されます。

以下は、データ グリッドを更新するために使用しようとしているコードです。これは、2 つのデータ グリッドを含む形式です。

Public Sub RefreshDataGrids()

    Me.ParentsTableAdapter.Fill(Me.DataSetParentsStudents.Parents)
    Me.StudentsTableAdapter.Fill(Me.DataSetParentsStudents.Students)
    LightGridParents.Refresh()
    LightGridStudents.Refresh()
End Sub

このデータを更新するために必要な追加のコーディングを教えてください。または、詳細フォーム内からこのコードを呼び出すのに間違った場所を使用していないか教えてください。

4

1 に答える 1

0

私はそれを行う方法を見つけ、それが他の人に役立つことを願っています.

データ グリッドを更新する詳細フォームから呼び出しを削除しました。

代わりに、ユーザーがダブルクリックして詳細フォームを取得したときに、フォームをダイアログ ウィンドウとして呼び出します。ダイアログフォームへの呼び出しの後にコーディングを配置して、テーブルアダプターを再入力しましたが、それでうまくいきました。

コーディングは次のとおりです。

' Control handlers - Grid handlers.
'----------------------------------
Private Sub LightGrid_MouseDoubleClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles LightGridParents.MouseDoubleClick

    If ParentsBindingSource.Count > 0 Then

        ' Call the parents form.
        '-----------------------
        objFormParents = New FormParents(IDTextBox.Text, "From Parents And Students")
        objFormParents.ShowDialog()

        ' Refresh the data grid.
        '-----------------------
        Me.ParentsTableAdapter.Fill(Me.DataSetParentsStudents.Parents)
    End If
End Sub

Private Sub LightGridStudents_MouseDoubleClick(sender As System.Object, e As System.Windows.Forms.MouseEventArgs) Handles LightGridStudents.MouseDoubleClick

    If StudentsBindingSource.Count > 0 Then

        ' Call the students form.
        '------------------------
        objFormStudents = New FormStudents(StudentsIDTextBox.Text, "From Parents And Students")
        objFormStudents.ShowDialog()

        ' Refresh the data grid.
        '-----------------------
        Me.StudentsTableAdapter.Fill(Me.DataSetParentsStudents.Students)
    End If
End Sub
于 2012-05-07T13:20:09.407 に答える