今日是:
  小新技术网 -=> 程序开发 -=> VB编程 -=> 正文

在VB.Net中创建使用控件数组

作者:[本站整理] 来源:[本站] 浏览:[] 评论:[]  【字体:

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

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

2、为ButtonArray类添加ParentForm属性,即控件组所在窗体,创建初始化函数(构造函数);

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中使用Directsound9之简单播放
上一篇:用VB在窗口中显示动画图标
IP查询、IP签名
打印 】【 收藏 】【 评论 】【 推荐
相关文章 栏目推荐文章 栏目热门文章
 推荐文章 学习,是一条漫长的道路 
 普通文章 用VB跟我学做记事本(很简单哟) 
 普通文章 VB中简单木马程序的编写 
 普通文章 利用VB6.0设计屏幕保护程序 
 普通文章 Jave学习:巧用jabc进行数据库的操.. 
 普通文章 VB能做什么  
 普通文章 用VB学做“黑客”程序 
 普通文章 用VB在窗口中显示动画图标 
 普通文章 浅谈用VB6.0编写“特洛伊木马”程.. 
最新文章 最新推荐文章 热门文章
 普通文章 简历封面 
 普通文章 简历封皮(二) 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 普通文章 只需三步!闪盘立刻变成启动盘 
 普通文章 战无不胜 一目了然看穿局域网 
 普通文章 Win 2000/XP在局域网内批量升级 
 普通文章 黑客经常更改的系统配置文件及注册.. 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 推荐文章 Ghost二十个鲜为人知的实用参数 
 推荐文章 ASP.NET程序中常用的三十三种代码.. 
 推荐文章 黑客利用Ms05002溢出找“肉鸡” 
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 Ghost所有运行错误代码完全大揭秘.. 
 推荐文章 利用Java Swing 实现游戏开发 
 推荐文章 秘籍:QQ头像任意换 
 普通文章 提升QQ等级 QQ挂机升级外挂  
 普通文章 QQ100个经典个性签名!可爱经典贴图.. 
 推荐文章 BIOS设置图解教程(多图) 
 普通文章 惊现腾讯QQ刷等级漏洞 
 普通文章 求职简历封皮  
 普通文章 突破在线观看电影 
 普通文章 GIF动画图片制作教程 
点击查看更多评论
笔名:
评论:
[评论将在5分钟内被审核,请耐心等待]
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright ©2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网  冀ICP备05002857号