HOW TO: 使用 Visual Basic .NET 将对象的 ArrayList 或 Collection 绑定到 Windows 窗体

本文的发布号曾为 CHS313640
本文已归档。它按“原样”提供,并且不再更新。
概要
本文介绍如何将对象 ArrayList 绑定到 Windows 窗体。 本文中的示例包括一个 Windows 窗体,该窗体包含三个用于显示对象属性的文本框。 该示例还包含四个命令按钮,用以浏览该 ArrayList

返回页首

要求

下面的列表列出了推荐使用的硬件、软件、网络基础结构、技能、知识和所需的服务包:
  • Visual Basic .NET
  • 对 Visual Basic 编程概念的理解达到中等水平
返回页首

代码说明

本节主要介绍完成此任务需要的编码概念。

返回页首

设计类

将要绑定到窗体的类必须有属性访问器。 将要绑定的任何属性都必须有 Property SetProperty 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 = yearEnd Sub    Public Property make() As StringGet            Return m_makeEnd GetSet(ByVal Value As String)            m_make = ValueEnd SetEnd PropertyEnd Class
返回页首

将类实例添加到 ArrayList

下一步将创建对象并将对象添加到 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 后,可以将对象的单个属性绑定到 Windows 窗体控件。 为此,请调用 TextBox 控件的 DataBindings 属性的 Add 方法。 此外,请传递将要绑定的控件属性、该 ArrayList 的名称和对象的属性。
TextBox1.DataBindings.Add("Text", al, "Make")TextBox2.DataBindings.Add("Text", al, "Model")TextBox3.DataBindings.Add("Text", al, "Year")
返回页首

提供浏览 ArrayList 的方式

在本过程的最后一步,将使用 CurrencyManager 类浏览 ArrayList。 为此,请将 CurrencyManager 与窗体的 BindingContext(此例中即 ArrayList)相关联。
Private cMan As CurrencyManagercMan = CType(Me.BindingContext(al), CurrencyManager)
CurrencyManager 类有一个 Position 属性,您可以操纵该属性以迭代 ArrayList 的成员。 通过增大或减小 Position 的当前值,您可以在该窗体上显示该 ArrayList 的不同成员。例如:
'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 中新建一个 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)        Me.make = make        Me.model = model        Me.year = yearEnd Sub    Public Property make() As StringGet            Return m_makeEnd GetSet(ByVal Value As String)            m_make = ValueEnd SetEnd Property    Public Property model() As StringGet            Return m_modelEnd GetSet(ByVal Value As String)            m_model = ValueEnd SetEnd Property    Public Property year() As ShortGet            Return m_yearEnd Get        Set(ByVal Value As Short)            m_year = ValueEnd SetEnd PropertyEnd 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 += 1End SubPrivate Sub Button2_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button2.Click        cMan.Position -= 1End SubPrivate Sub Button3_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button3.Click        cMan.Position = 0End SubPrivate Sub Button4_Click(ByVal sender As System.Object, _ByVal e As System.EventArgs) Handles Button4.Click        cMan.Position = al.Count - 1End Sub
  10. 生成并运行该项目。
  11. 单击这些按钮可显示不同的数组元素。 注意,您可以编辑这些对象的值。
返回页首

使用 Collection 对象

您还可以使用一个 Collection 对象来存储这些结构。 若要测试 Collection 对象的使用情况,请按照下列步骤操作:
  1. Form_Load 事件过程中找到以下代码:
    Dim al As New ArrayList()
  2. 将上面的代码替换为下面的代码:
    Dim al As New Collection()
  3. 保存对该项目的更改,然后重新运行该项目。
返回页首
参考
有关更多信息,请参阅 Microsoft Visual Studio .NET 联机帮助文档中的“Windows 窗体上的数据使用者”这一主题。

返回页首
属性

文章 ID:313640 - 上次审阅时间:02/24/2014 20:25:15 - 修订版本: 1.0

  • Microsoft Visual .NET 2002 标准版
  • kbnosurvey kbarchive kbhowto kbhowtomaster KB313640
反馈