BindingNavigator《BindingSource的應用 (2)》

這一篇來應用一下BindingNavigator與BindingSource的結合,來取代前一篇使用Button做出來的功能,並且同時繫結資料到TextBox與DataGridView。

      這一篇來應用一下BindingNavigator與BindingSource的結合,來取代前一篇使用Button做出來的功能,並且同時繫結資料到TextBox與DataGridView。

      BindingNavigator類別事實上是繼承ToolStrip類別而來,它是一組用於處理表單資料來源的Toolstrip。BindingSource4

 

      我們預計要做出以下這樣的畫面:

BindingSource5

      程式碼簡單到讓人不可置信,只有這麼一點點,程式的重點只有粗體字的部份:

Public Class Form2
    Dim myDatatable2 As New DataTable
    Dim myBindingSource2 As New BindingSource
    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        myDatatable2.Columns.Add("Col1")
        myDatatable2.Columns.Add("Col2")
        RowsAdd(myDatatable2)
        DataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect
        DataGridView1.MultiSelect = False
       myBindingSource2.DataSource = myDatatable2
       DataGridView1.DataSource = myBindingSource2
       TextBox1.DataBindings.Add("Text", myBindingSource2, "Col1")
       TextBox2.DataBindings.Add("Text", myBindingSource2, "Col2")
        BindingNavigator1.BindingSource = myBindingSource2 <==指定BindingNavigator1.BindingSource屬性值
    End Sub
    Private Sub RowsAdd(ByVal myDatatable As DataTable)
        Dim i As Integer
        For i = 0 To 9
            Dim myNewRow As DataRow = myDatatable.NewRow
            myNewRow.Item(0) = i
            myNewRow.Item(1) = Chr(65 + i)
            myDatatable.Rows.Add(myNewRow)
        Next
    End Sub
End Class

    前一篇還得要處理 Move什麼的,這會兒連這都不需要了,這樣有沒有覺得寫起來很開心?

    另一個要附帶一提的是,BindingSource的資料來源也可以是其它的物件,例如ArrayList類別的執行個體,這代表只要是BindingSource吃的下的資料來源,我們都可以藉由BindingSource的屬性來處理程式,就不需要為了不同的資料來源撰寫不同的處理程式碼。

    以上範例包含以ArrayList為資料來源的程式檔案可以在此連結中下載:BindingSourceTest_1.rar