如何將至物件或結構的陣列清單的 DataGrid 控制項繫結使用 Visual Basic 2005 或 Visual Basic.NET

文章翻譯 文章翻譯
文章編號: 316302 - 檢視此文章適用的產品。
本文章的有 Microsoft Visual C#.NET] 版本請參閱 316303
全部展開 | 全部摺疊

在此頁中

結論

本文將逐步告訴您,如何將物件的 陣列清單 繫結至 DataGrid 控制項。此範例是由 Microsoft Windows Form 與 DataGrid 控制項來顯示物件屬性值和四個命令按鈕來瀏覽 DataGrid 控制項的資料列所組成。

需求

下列清單列出建議的硬體、 軟體、 網路基礎結構及所需的 Service Pack:
  • Microsoft Visual Basic 2005 或 Microsoft 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)
        m_make = make
        m_model = model
        m_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
				

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

若要建立執行個體,並將它們加入 陣列清單,請依照下列步驟執行:
  1. 宣告 陣列清單
  2. 建立該類別的執行個體,然後將該執行個體加入至 陣列清單
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))
				

將陣列清單繫結至 DataGrid

填入 陣列清單 之後設定 [以 陣列清單 的 [DataGrid 控制項的 資料來源 屬性]。DataGrid 控制項中的資料行被填入根據存在範圍內屬性存取子屬性。
DataGrid1.DataSource = al
				

提供方法來瀏覽陣列清單

您可以使用 CurrencyManager 瀏覽 陣列清單。若要執行此動作將關聯 CurrencyManagerBindingContext 控制項 (在此情況下,陣列清單) 的使用]。
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
CurrencyManager 類別有可以操作來逐一查看 陣列清單 的成員的 位置 屬性。藉由新增到,或從目前 位置 的值減去,您可以瀏覽 DataGrid 控制項的資料列。
'Move forward one element.
cManager.Position += 1
'Move back one element.
cManager.Position -= 1
'Move to the beginning.
cManager.Position = 0
'Move to the end.
cManager.Position = al.Count - 1
				

逐步範例

  1. 在 Visual Basic2005 或 Visual Basic.NET 中,建立新的 Windows 應用程式專案。預設會建立 Form1。
  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)
            m_make = make
            m_model = model
            m_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. 關閉 Class1.vb 程式碼視窗,然後切換至 [表單設計工具。
  5. DataGrid 控制項加入至 Form1。DataGrid 控制項,以容納四個資料行和三個資料列大小。
  6. 將四個 按鈕 控制項加入至 Form1,然後水平排列按鈕。
  7. 將的 Button1 的 [文字] 屬性變更為 下一步]
  8. 將的 Button2 的 [文字] 屬性變更為 前一頁
  9. 將的 Button3 的 [文字] 屬性變更為 第一次
  10. 將的 Button4 的 [文字] 屬性變更為 上次
  11. 將下列程式碼加入至 Form1 類別:
    Private cManager As CurrencyManager
    Private al as New ArrayList()
    					
  12. 下列程式碼貼 Form1_Load 事件中:
    al.Add(New guitar("Gibson", "Les Paul", 1958))
    al.Add(New guitar("Fender", "Jazz Bass", 1964))
    al.Add(New guitar("Guild", "Bluesbird", 1971))
    				
    cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
    	
    DataGrid1.DataSource = al
    					
  13. 下列程式碼貼 Form_Load 程序之後:
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            cManager.Position += 1
        End Sub
    
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            cManager.Position -= 1
        End Sub
    
        Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
            cManager.Position = 0
        End Sub
    
        Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
            cManager.Position = al.Count - 1
        End Sub
    					
  14. 建置並執行專案。
  15. 按一下指令按鈕,在 DataGrid 控制項的資料列之間移動。注意是否需要的話可以編輯該物件的值。

使用結構而非類別

規則的繫結結構就會相同規則的繫結的物件。屬性 (也就是成員) 存取子都是必要的。建立此目的的結構類似類別。

若要將繫結至結構的 陣列清單,請依照下列步驟執行:
  1. 變更 Class1.vb 類別模組,在從
    Public Class guitar
    '...
    End Class
    					
    下列:
    Public Structure guitar
    '...
    End Structure
    					
  2. 建置和再次,執行範例程式,並確認它運作與結構的 陣列清單

?考

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

屬性

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