1

特定のフォームでデータグリッドビューを持っています。そのフォームには、詳細を受け入れる追加および更新ボタンがあり、終了ボタンをクリックすると、グリッドビューを更新したいと思います。しかし、別のフォームから詳細を追加/更新しているため、これを達成できないようです。

最初のフォーム (バインド データ、更新/追加ボタン フォームに移動):

Private Sub bindStudentsData()
    Dim db As New Database()

    DataGridView1.DataSource = Nothing
    DataGridView1.DataSource = New BindingSource(db.getStudentList(), Nothing)

End Sub


Private Sub addBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles addBtn.Click
    Dim sf As New StudentForm()
    sf.Show()
End Sub

Private Sub updateBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles updateBtn.Click
    Dim sid As String = DataGridView1.SelectedRows(0).Cells("studentid").Value

    Dim sf As New StudentForm(sid)
    sf.Show()
End Sub

* .show() を使用すると、前のフォームが開いたままになり、別のフォームが開きます

次に、詳細を入力して [Finish Second Form] をクリックします。

Private Sub doneBtm_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles doneBtm.Click
    Dim db As New Database()
    If type Is "add" Then
        'go to add
        MsgBox(type)
    Else
        'go to update
        db.updateStudentDetails(sid, astudentnumberText.Text, afirstnameText.Text, 
                     _alastnameText.Text, amiddlenameText.Text, asectionText.Text)
        Me.Close()
    End If
End Sub

2 番目のフォームで [完了] ボタンをクリックした後、最初のフォームで datagridview を再バインドする必要があります。どうすればそれができますか?何か案は?ありがとう!

4

4 に答える 4

0

終了したら、データを db に保存してから、更新するフォームをコールバックできます。そして、バインディングは更新された/新しいデータで更新されます...

@kush さんのコメントより、作業終了後に2つ目のフォームを閉じたい場合は、response witchにscriptタグを追加してページを閉じてください。

于 2012-11-15T13:57:33.327 に答える
-1

databindingsource を使用して行った方法は次のとおりです。

form1のボタン編集で:

edit_product.Show()
edit_product.Item_numTextBox.Text = Item_numTextBox.Text
Me.Close()

次に、私のform2で:

Private Sub Item_numTextBox_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Item_numTextBox.TextChanged
      InventoryBindingSource.Filter = "[item_num] like '%' + '" & Item_numTextBox.Text & "' + '%'"
End Sub
于 2021-02-09T11:12:13.027 に答える