• 注册
  • 关于作者
    企业认证:趣记站长
    关注 6 粉丝 4 喜欢 9 内容 992
    江西省·南昌市
    聊天 送礼
    • 查看作者
    • 在VB.Net中创建使用控件数组

      首先创建一个Button类型控件数组:

      1、创建“Windows应用程序”类型的工程,添加名为ButtonArray的类,并使该类继承 System.Collection.CollectionBase 类。System.Collections.CollectionBase类是.NET框架类库中为集合操作提供抽象的基类,通过对它的继承可以为我们的ButtonArray类具备集合增加、删除、索引的功能。

      2、为ButtonArray类添加ParentForm属性,

      VB.NET实现DataList横向数据交替变色
      VB.Net调用存储过程并得到返回值,详解VB.NET对象浏览器作用体现,老生常谈:从VB6迁移到VB.net,VB.net2008精彩实例,窗体应用技巧,用VB.net2008打造你的影音播放器,一个Office 2003风格的通知控件(VB.NET),在VB.NET中操作MySQL数据库,vb.net开发中使用excel插件的代码,vb.net封装组件成com的方法,.NET环境下几种不同的邮件发送解决方案,用.net动态创建类的实例,VB.NET实现DataList横向数据交替变色,在VB.Net中创建使用控件数组,在Visual Basic .NET 中实现后台进程,VB.NET中使用Directsound9之简单播放,用新VB.NET 枚举提高效率,在有Clipboard的应用程序间移动数据,VB.NET中的变量范围差异,从Visual Basic 6.0 到 Visual Basic.NET 的转换,微软.Net程序设计FAQ
      VB.net

      即控件组所在窗体,创建初始化函数(构造函数);

      3、为控件数组类增加AddItem方法,该方法在控件数组类中添加成员;

      4、为控件数组类增加RemoveItem方法,该方法在控件数组中删除一个成员。

      示例代码:

      Public Class ButtonArray

          Inherits System.Collections.CollectionBase

          Private ReadOnly ParentForm As System.Windows.Forms.Form

          Public Sub New(ByVal pForm As System.Windows.Forms.Form)

              ParentForm = pForm

          End Sub

          Default Public ReadOnly Property Item(ByVal index As Integer) As System.Windows.Forms.Button

              Get

                  Return Me.List.Item(index)   '' ButtonArray的List 属性从CollectionBase 继承

              End Get

          End Property

          Public Sub AddItem()

              Dim btnItem As New System.Windows.Forms.Button

              Me.List.Add(btnItem)

              ParentForm.Controls.Add(btnItem)                  ''向窗体中增加控件

              btnItem.Tag = Me.Count                            ''Count属性从CollectionBase 继承

              btnItem.Top = Me.Count * 30

              btnItem.Left = 200

              btnItem.Text = "Button" & Me.Count.ToString

              AddHandler btnItem.Click, AddressOf btnItem_Click ''绑定事件处理程序

          End Sub

          Public Sub AddItem(ByVal btnItem As System.Windows.Forms.Button)

              Me.List.Add(btnItem)

              AddHandler btnItem.Click, AddressOf btnItem_Click ''绑定事件处理程序

          End Sub

          Public Sub RemoveItem()

              If Me.Count > 0 Then

                  ParentForm.Controls.Remove(Me(Me.Count - 1))

                  Me.List.RemoveAt(Me.Count - 1)

              End If

          End Sub

          Public Sub btnItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)

              ''在这里编写控件数组对点击事件的响应

              ''例如:

              MsgBox("点击:" & sender.GetType().ToString & CType(CType(sender, Button).Tag, String))

          End Sub

      End Class

      使用创建的控件数组

      在Form1中放置两个按钮Button1、Button2,分别测试控件数组的增添、删除。

      双击Form添加代码:

      Public Class Form1

          Inherits System.Windows.Forms.Form

      ……Windows窗体设计器生成的代码……

          Dim Buttons As New ButtonArray(Me)

      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

              Buttons.AddItem()

          End Sub

      Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

              Buttons.RemoveItem()

          End Sub

      End Class

      其他的控件数组也可以用类似的方式来实现

      例如 Label控件数组

      LabelArray.vb代码如下:

      Public Class LabelArray

          Inherits System.Collections.CollectionBase

          Private ReadOnly ParentForm As System.Windows.Forms.Form

          Public Sub New(ByVal pForm As System.Windows.Forms.Form)

              ParentForm = pForm

          End Sub

          Default Public ReadOnly Property Item(ByVal index As Integer) As System.Windows.Forms.Label

              Get

                  Return Me.List.Item(index)   '' ButtonArray的List 属性从CollectionBase 继承

              End Get

          End Property

          Public Sub AddItem(ByVal btnItem As System.Windows.Forms.Label)

              Me.List.Add(btnItem)

              AddHandler btnItem.Click, AddressOf btnItem_Click ''绑定事件处理程序

          End Sub

          

          Public Sub btnItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)

              ''在这里编写控件数组对点击事件的响应

              ''例如:

              MsgBox("点击:" & sender.GetType().ToString & CType(CType(sender, Label).Tag, String))

          End Sub

      End Class

      使用创建的Label控件

      在Form1中放置两个按钮Label1、Label2

      双击Form添加代码:

      Public Class Form1

          Inherits System.Windows.Forms.Form

      #Region " Windows 窗体设计器生成的代码 "

          Public Sub New()

              MyBase.New()

              ''该调用是 Windows 窗体设计器所必需的。

              InitializeComponent()

              ''在 InitializeComponent() 调用之后添加任何初始化

              ''用来绑定label

              BindArray()

          End Sub

      ……Windows窗体设计器生成的其他代码……

      #End Region

        Dim Labels As New LabelArray(Me)

        Public Sub BindArray()

              Me.Label1.Tag = "1111"

              Me.Label2.Tag = "222"

              Labels.AddItem(Me.Label1)

              Labels.AddItem(Me.Label2)

          End Sub

      End Class

      然后可以测试点击两个label可以显示相应的Tag的信息。

      VB.NET实现DataList横向数据交替变色
      VB.Net调用存储过程并得到返回值,详解VB.NET对象浏览器作用体现,老生常谈:从VB6迁移到VB.net,VB.net2008精彩实例,窗体应用技巧,用VB.net2008打造你的影音播放器,一个Office 2003风格的通知控件(VB.NET),在VB.NET中操作MySQL数据库,vb.net开发中使用excel插件的代码,vb.net封装组件成com的方法,.NET环境下几种不同的邮件发送解决方案,用.net动态创建类的实例,VB.NET实现DataList横向数据交替变色,在VB.Net中创建使用控件数组,在Visual Basic .NET 中实现后台进程,VB.NET中使用Directsound9之简单播放,用新VB.NET 枚举提高效率,在有Clipboard的应用程序间移动数据,VB.NET中的变量范围差异,从Visual Basic 6.0 到 Visual Basic.NET 的转换,微软.Net程序设计FAQ
      VB.net

    • 0
    • 0
    • 0
    • 51
    • 单栏布局 侧栏位置: