Visual Basic 2005 - 讀者的問題與解答

摘要:Visual Basic 2005 - 讀者的問題與解答

原發問問題 

教的是VB那本:Visual Basic 2005檔案IO料存取秘
VB2005繫結語法如下:
Me.TextBox1.DataBindings.Add("Text",myCustomer,"ID")
而在VB2005,多了一Boolen參數請問有什麼用的?
Me.TextBox1.DataBindings.Add("Text",myCustomer,"ID",True) 

回答 

親愛的讀者您好,很感謝您對於章立民研究室的支持,有關於您提到的問題,回覆如下。 

DataBindings.Add 方法的第四個參數表示是否要使用 Binding 物件的 FormatString 屬性來格式化。您必須將 DataBindings.Add 方法的第四個參數設定成 TrueBinding 物件的 FormatString 屬性才會生效。 

以下面的程式碼而言,我們將表單上三個 TextBox 控制項的 Text 屬性分別繫結至「貨品」資料表物件的「編號」「名稱」「成本」欄位,其中最特別之處,就是顯示成本資料的 TextBox 控制項會以貨幣格式來顯示成本資料欲達此目的,首先在進行資料繫結時必須將 DataBindings.Add 方法的第四個參數設定成True,然後再將它所傳回之 Binding 物件的 FormatString 屬性設定成所需的格式化字串 

' 建立一個名稱為「貨品」的 DataTable 物件並加入三個欄位。
'
'
編號:   int
'
姓名:   string
'
成本:   Decimal
'
Dim myTable As New DataTable("貨品")
myTable.Columns.Add("
編號", Type.GetType("System.Int32"))
myTable.Columns.Add("
名稱", Type.GetType("System.String"))
myTable.Columns.Add("
成本", Type.GetType("System.Decimal"))

myTable.Rows.Add(0, "
蘋果", 10D)
myTable.Rows.Add(1, "
柳丁", 11.1D)
myTable.Rows.Add(2, "
芒果", 12.2D)

'
TextBox 控制項的 Text 屬性(字串型別)繫結至
'
「貨品」資料表的「編號」欄位(整數型別)。
'
繫結執行階段會處理字串與整數的型別轉換。
Me.txtId.DataBindings.Add("Text", myTable, "編號", True)

'
TextBox 控制項的 Text 屬性(字串型別)繫結至
'
「貨品」資料表的「名稱」欄位(字串型別)。
Me.txtName.DataBindings.Add("Text", myTable, "名稱", True)

'
TextBox 控制項的 Text 屬性(字串型別)繫結至
'
「貨品」資料表的「成本」欄位(Decimal 型別)。
'
'
繫結執行階段會將成本值顯示成貨幣值(亦即會加上貨幣符號 NT$)。
'

' 請特別注意,此處我們是先建立一個 Binding 物件,
'
接著設定其 FormatString 屬性,然後將它新增至控制項的
 ControlBindingsCollection
集合中。
Dim cb As Binding = New Binding("Text", myTable, "成本", True)

' .NET Framework
貨幣格式字串。
cb.FormatString = "c"

' Binding 物件新增至控制項的 ControlBindingsCollection 集合中。
Me.txtCost.DataBindings.Add(cb)


章立民研究室
2007/1/22