如何繫結的陣列清單或集合的結構,以 Windows 表單使用 Visual Basic.NET 或 Visual Basic 2005

文章翻譯 文章翻譯
文章編號: 313638 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何將結構的 陣列清單 繫結至 Windows Form。此範例也包含以三個文字方塊 Windows Form 來顯示結構成員和四個命令按鈕 陣列清單 中移動。

需求

Microsoft Visual Basic.NET 或 Microsoft Visual Basic 2005

討論區的程式碼

這一節將說明重要才能完成這項工作的程式碼撰寫概念。

設計結構

要繫結至表單的結構必須具有成員的存取子。結構成員存取子幾乎是相同的 屬性集 / 取得 結構,在類別中找到。本文中範例用於此結構中都有三個成員 (顯示只有一個)。參數型建構函式 也會提供但不是必要的。
Private Structure guitar
    Friend mmake As String
    Friend mmodel As String
    Friend myear As Short

    Public Sub New(ByVal make, ByVal model, ByVal year)
        Me.mmake = make
        Me.mmodel = model
        Me.myear = year
    End Sub

    Public Property make() As String
        Get
            make = mmake
        End Get
        Set(ByVal Value As String)
            mmake = Value
        End Set
    End Property
End Structure
				

將結構執行個體加入至陣列

T 建立執行個體,並將它們加入 陣列清單,請依照下列步驟執行:
  1. 宣告結構的型別變數。
  2. 宣告 陣列清單
  3. 建立該結構的執行個體,並接著將其新增至 陣列清單
Private myStruct As guitar
Dim al As New ArrayList()

myStruct = New guitar("Gibson", "Les Paul", 1958)
al.Add(myStruct) 
myStruct = New guitar("Fender", "Jazz Bass", 1964)
al.Add(myStruct)
myStruct = New guitar("Guild", "Bluesbird", 1971)
al.Add(myStruct)
				

結構成員繫結至表單的控制項

填入 陣列清單 之後您可以將結構的個別成員繫結至 Windows Form 控制項。要執行此動作必須呼叫 文字方塊資料繫結 屬性的 Add 方法,然後傳遞要繫結屬性、 陣列清單,名稱和成員的結構。
TextBox1.DataBindings.Add("Text", al, "make")
TextBox2.DataBindings.Add("Text", al, "model")
TextBox3.DataBindings.Add("Text", al, "year")
				

提供一種陣列清單中移動的方式

程序中的最後一個步驟是提供一種 陣列清單 中移動的方法。若要執行此動作,您必須使用 CurrencyManagerCurrencyManager 關聯表單的 BindingContext,在這種情況下 陣列清單 的結構。
Private cMan As CurrencyManager

cMan = CType(Me.BindingContext(al), CurrencyManager)
				
CurrencyManager 物件有可操作來逐一查看 陣列清單 的成員的 位置 屬性。藉由新增到,或從目前 位置 的值減去,您可以在表單上顯示不同的 陣列清單 的成員。
'Move forward one element.
 cMan.Position += 1
'Move back one element.
cMan.Position -= 1
'Move to the beginning.
cMan.Position = 0
'Move to the end.
cMan.Position = al.Count - 1
				

雖說是逐步範例

  1. 在 Visual Basic.NET 或在 Visual Basic 2005 中,請開啟新的 Windows 應用程式專案。
  2. 將三個文字方塊加入至 Form1,然後水平排列控制項。
  3. 將四個命令按鈕加入至 Form1,然後水平排列控制項。
  4. 將 Button1 文字屬性 變更為 下一步]
  5. 將 Button2 文字屬性 變更為 前動畫同時]
  6. 變更 文字屬性 的 Button3 為 第一次
  7. 上次 變更 Button4 文字屬性
  8. 將下列程式碼加入至宣告區段的 Form1:
    Private Structure guitar
        Friend mmake As String
        Friend mmodel As String
        Friend myear As Short
    
        Public Sub New(ByVal make, ByVal model, ByVal year)
            Me.mmake = make
            Me.mmodel = model
            Me.myear = year
        End Sub
    
        Public Property make() As String
            Get
                make = mmake
            End Get
            Set(ByVal Value As String)
                mmake = Value
            End Set
        End Property
        Public Property model() As String
            Get
                model = mmodel
            End Get
            Set(ByVal Value As String)
                mmodel = Value
            End Set
        End Property
        Public Property year() As Short
            Get
                year = myear
            End Get
            Set(ByVal Value As Short)
    
    
            myear = Value
            End Set
        End Property
    End Structure
    
    Private myStruct As guitar
    Private al As New ArrayList()
    Private cMan As CurrencyManager
    					
  9. 將下列程式碼加入至 Form_Load 事件:
    myStruct = New guitar("Gibson", "Les Paul", 1958)
    al.Add(myStruct)
    myStruct = New guitar("Fender", "Jazz Bass", 1964)
    al.Add(myStruct)
    myStruct = New guitar("Guild", "Bluesbird", 1971)
    al.Add(myStruct)
    
    cMan = CType(Me.BindingContext(al), CurrencyManager)
    
    TextBox1.DataBindings.Add("Text", al, "make")
    TextBox2.DataBindings.Add("Text", al, "model")
    TextBox3.DataBindings.Add("Text", al, "year")
    					
  10. Form_Load 事件之後加入下列程式碼:
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button1.Click
            cMan.Position += 1
    End Sub
    
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button2.Click
            cMan.Position -= 1
    End Sub
    
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button3.Click
            cMan.Position = 0
    End Sub
    
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As
    System.EventArgs) Handles Button4.Click
            cMan.Position = al.Count - 1
    End Sub
    					
  11. 建置並執行專案。
  12. 按一下按鈕以顯示不同的 陣列清單 項目。請注意您可以編輯該物件的值。

使用集合

您可以使用 集合 物件來儲存該結構。若要測試的 集合 使用,在 Form_Load 事件程序中找到下列程式碼行:
Private al As New ArrayList()
取代成下列程式碼的前面的程式碼行,然後再重新執行範例:
Private al As New Collection()

參考

請參閱下列主題 Visual Studio.NET 或 Visual Studio 2005 線上說明的文件中:
在 Windows Form 上的資料的消費者

屬性

文章編號: 313638 - 上次校閱: 2014年2月24日 - 版次: 3.3
這篇文章中的資訊適用於:
  • Microsoft Visual Basic .NET 2002 Standard Edition
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic 2005
關鍵字:?
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB313638 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:313638
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com