這一篇來應用一下BindingNavigator與BindingSource的結合,來取代前一篇使用Button做出來的功能,並且同時繫結資料到TextBox與DataGridView。
這一篇來應用一下BindingNavigator與BindingSource的結合,來取代前一篇使用Button做出來的功能,並且同時繫結資料到TextBox與DataGridView。
BindingNavigator類別事實上是繼承ToolStrip類別而來,它是一組用於處理表單資料來源的Toolstrip。
我們預計要做出以下這樣的畫面:
程式碼簡單到讓人不可置信,只有這麼一點點,程式的重點只有粗體字的部份:
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