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

文章翻译 文章翻译
文章编号: 313640 - 查看本文应用于的产品
本文的发布号曾为 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 = 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 类:
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 CurrencyManager

cMan = 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 = 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. 单击这些按钮可显示不同的数组元素。 注意,您可以编辑这些对象的值。

使用 Collection 对象

您还可以使用一个 Collection 对象来存储这些结构。 若要测试 Collection 对象的使用情况,请按照下列步骤操作:
  1. Form_Load 事件过程中找到以下代码:
    Dim al As New ArrayList()
  2. 将上面的代码替换为下面的代码:
    Dim al As New Collection()
  3. 保存对该项目的更改,然后重新运行该项目。

参考

有关更多信息,请参阅 Microsoft Visual Studio .NET 联机帮助文档中的“Windows 窗体上的数据使用者”这一主题。

属性

文章编号: 313640 - 最后修改: 2014年2月24日 - 修订: 1.0
这篇文章中的信息适用于:
  • Microsoft Visual .NET 2002 标准版
关键字:?
kbnosurvey kbarchive kbhowto kbhowtomaster KB313640
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