选择显示字体大小

在vb.net中创建使用控件数组

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的信息。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons