如何通过使用 Visual Basic 2005 或 Visual Basic.net 将 DataGrid 控件绑定到的对象或结构 ArrayList

文章翻译 文章翻译
文章编号: 316302 - 查看本文应用于的产品
为这篇文章的一个 Microsoft Visual C#.net 版本,请参阅 316303
展开全部 | 关闭全部

本文内容

概要

本分步指南介绍了如何将对象的 ArrayList 绑定到 DataGrid 控件。该示例包含在 Microsoft Windows 窗体使用 DataGrid 控件显示对象的属性值和四个命令按钮以浏览 DataGrid 控件中的行。

要求

下面的列表概述了建议的硬件、 软件、 网络的基础结构和所需的服务包:
  • Microsoft Visual Basic 2005 或 Microsoft Visual Basic.net
本文假定您熟悉下列主题:
  • vba 编程概念

设计类

要绑定到控件的类必须有属性访问器。任何要绑定的属性必须具有 属性集属性的 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
				

将类实例添加到 ArrayList

若要创建实例和将它们添加到 ArrayList,请按照下列步骤操作:
  1. 声明 ArrayList
  2. 创建类的实例,然后将该实例添加到 ArrayList
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))
				

将该 ArrayList 绑定到 DataGrid

已填充 ArrayList 后,请将 DataGrid 控件的 数据源 属性设置为 ArrayList。将 DataGrid 控件中的列会填充基于的属性的范围内的属性访问器存在。
DataGrid1.DataSource = al
				

提供了一种方法可以浏览该 ArrayList

您可以使用 CurrencyManager 浏览 ArrayList。若要这样做将与该 BindingContext (在此例 ArrayList),将控件的相关联 CurrencyManager
Private cManager As CurrencyManager

cManager = CType(DataGrid1.BindingContext(al), CurrencyManager)
				
CurrencyManager 类有一个 位置 属性,可以以循环访问 ArrayList 的成员进行处理。通过向,添加或减去当前值的 位置,您可以浏览 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. 在可视 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. 向 Form1 中添加一个 DataGrid 控件。调整大小以适应三个行和四个列将 DataGrid 控件。
  6. 将四个 按钮 控件添加到 Form1,然后横向排列按钮。
  7. 下一处 更改 Button1 文本 属性。
  8. 更改到 前一节 的 Button2 文本 属性。
  9. 更改为 第一个 Button3 的 Text 属性。
  10. 上次 更改 Button4 的 Text 属性。
  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 控件中的行之间移动。注意是否需要您可以编辑该对象的值。

使用结构而不一个类

将规则绑定结构是用于绑定的对象规则相同。属性 (成员) 访问器是必需的。为此目的创建的结构与类相似。

若要将绑定到的结构 ArrayList,请按照下列步骤操作:
  1. 更改从
    Public Class guitar
    '...
    End Class
    					
    以下列:
    Public Structure guitar
    '...
    End Structure
    					
  2. 生成和再次,运行该示例程序,并验证其功能与 ArrayList 的结构。

参考

有关详细的信息请参阅 Visual Studio.net 联机帮助中"用户的数据在 Windows 窗体"主题。

属性

文章编号: 316302 - 最后修改: 2006年12月6日 - 修订: 3.3
这篇文章中的信息适用于:
  • Microsoft Visual Basic 2005
  • Microsoft Visual Basic .NET 2003 标准版
  • Microsoft Visual .NET 2002 标准版
关键字:?
kbmt kbvs2005swept kbvs2005applies kbhowtomaster KB316302 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 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