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

文章翻譯 文章翻譯
文章編號: 313640 - 檢視此文章適用的產品。
本文已封存。本文係以「現狀」提供且不會再更新。
本文章的有 Microsoft Visual C#.NET] 版本請參閱 313634
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何將物件的 陣列清單 繫結至 Microsoft Windows Form 或 Microsoft Visual Baisc.NET Microsoft Visual Basic 2005 中。本文中的範例包括 Windows Form 以三個文字方塊以顯示物件屬性。該範例還包括四個命令按鈕,瀏覽 陣列清單

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及您需要的服務套件:
  • Visual Basic 2005 或 Visual Basic.NET
本文假設您擁有對 Visual Basic 程式設計概念的中繼瞭解。

程式碼說明

本章節會反白顯示編碼所需完成這項工作的概念。

設計類別

將繫結到表單的類別必須有屬性存取子。將會繫結任何屬性必須有的 屬性集] 和 [屬性 Get 方法。用於本文中範例的類別有三個屬性 (使用此區段顯示只有一個)。本文中的範例還包括參數型建構函式,雖然這並非必要。
Public Class guitar
    Private m_make As String
    Private m_model As String
    Private m_year As Short

    Public Sub New(ByVal make, ByRef model, ByVal year)
        Me.make = make
        Me.model = model
        Me.year = year
    End Sub
    Public Property make() As String
        Get
            Return m_make
        End Get
        Set(ByVal Value As String)
            m_make = Value
        End Set
    End Property
End Class
				

將類別執行個體加入至陣列

下一步是建立物件,並將它們新增到 陣列清單 類別:
Private al As New ArrayList()

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

將物件屬性繫結至表單控制項

填入 陣列清單 之後您可以將物件的個別屬性繫結至 Windows Form 控制項。若要執行此動作呼叫 Add 方法的 TextBox 控制項 資料繫結 屬性。在另外傳遞將繫結控制項屬性、 陣列清單,名稱以及物件的屬性。
TextBox1.DataBindings.Add("Text", al, "Make")
TextBox2.DataBindings.Add("Text", al, "Model")
TextBox3.DataBindings.Add("Text", al, "Year")
				

提供方法,以瀏覽陣列清單

這項程序的最後一個步驟中,,使用 CurrencyManager 類別瀏覽 陣列清單。若要執行此動作將關聯 CurrencyManagerBindingContext 表單 (在此情況下,陣列清單) 的使用]。
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 2005 或 Visual Basic.NET,請建立新的 Windows 應用程式專案。Form1 是根據預設值加入至專案。

    附註 您必須變更程式碼,在 Visual Basic 2005 中。依預設,Visual Basic 專案的兩個檔案時建立建立一個 Windows Form 專案。如果表單名為 Form1,代表表單的兩個檔案被命名 Form1.vb 並 Form1.Designer.vb。Form1.vb 檔案中撰寫程式碼。Windows Form 設計工具將 Form1.Designer.vb 檔案中寫入程式碼。Windows Form 設計工具使用 Partial 關鍵字來實作的 Form1 分成兩個獨立的檔案。這種行為可以防止設計工具產生的程式碼正在與您的程式碼位置顛倒。

    如需有關新的 Visual Basic 2005 語言加強功能的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站:
    http://msdn2.microsoft.com/en-us/library/ms379584(vs.80).aspx
    如需有關部分類別和 Windows Form 設計工具的詳細資訊,請造訪下列 MSDN 網站:
    http://msdn2.microsoft.com/en-us/library/ms171843.aspx
  2. 將類別加入至專案。
  3. 在 [Class1.vb 程式碼取代下列程式碼:
    Public Class guitar
        Private m_make As String
        Private m_model As String
        Private m_year As Short
    
        Public Sub New(ByVal make, ByRef model, ByVal year)
            Me.make = make
            Me.model = model
            Me.year = year
        End Sub
        Public Property make() As String
            Get
                Return m_make
            End Get
            Set(ByVal Value As String)
                m_make = Value
            End Set
        End Property
        Public Property model() As String
            Get
                Return m_model
            End Get
            Set(ByVal Value As String)
                m_model = Value
            End Set
        End Property
        Public Property year() As Short
            Get
                Return m_year
            End Get
            Set(ByVal Value As Short)
                m_year = Value
            End Set
        End Property
    End Class
    					
  4. 將三個 文字方塊 控制項加入至 Form1,然後水平排列控制項。
  5. 將四個 按鈕 控制項加入至 Form1,然後水平排列控制項。
  6. 變更按鈕的 [文字] 屬性如下所示:
    摺疊此表格展開此表格
    按鈕文字
    Button1下一個
    Button2前一個
    Button3第一個
    Button4最後一次
  7. 將下列程式碼加入至 Form1 的 [宣告] 區段:
    Private al As New ArrayList()
    Private cMan As CurrencyManager
    					
  8. 將下列程式碼加入至 Form_Load 事件:
    al.Add(New guitar("Gibson", "Les Paul", 1958))
    al.Add(New guitar("Fender", "Jazz Bass", 1964))
    al.Add(New Guitar("Guild", "Bluesbird", 1971))
    
    cMan = CType(Me.BindingContext(al), CurrencyManager)
    
    TextBox1.DataBindings.Add("Text", al, "make")
    TextBox2.DataBindings.Add("Text", al, "model")
    TextBox3.DataBindings.Add("Text", al, "year")
    					
  9. 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
    					
  10. 建置並執行專案。
  11. 按一下按鈕以顯示不同的陣列元素。請注意您可以編輯該物件的值。

使用集合物件

您也可以使用 集合 物件來儲存該結構。若要測試的 集合 物件使用,請依照下列步驟執行:
  1. Form_Load 事件程序中找到下列的程式碼:
    Private al As New ArrayList()
    					
  2. 上述程式碼取代下列程式碼:
    Private al As New Collection()
    					
  3. 將變更儲存至專案],然後再執行專案。

?考

如需詳細資訊請參閱 「 客戶的資料上 Windows 表單 」 主題,Visual Studio 2005 或 Visual Studio.NET [線上說明的文件中]。

屬性

文章編號: 313640 - 上次校閱: 2014年2月26日 - 版次: 4.5
這篇文章中的資訊適用於:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 Standard Edition
  • Microsoft Visual Basic .NET 2002 Standard Edition
關鍵字:?
kbnosurvey kbarchive kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB313640 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:313640
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