VB2010动态添加多个控件
Vb数据控件如何使用
Vb数据控件的使用使用ADO Data控件ADO Data控件使用MicrosoftActiveX数据对象(ADO)来快速建立数据绑定的控件和数据提供者之间的连接。
数据绑定控件是任何具有“数据源”属性的控件。
数据提供者可以是任何符合OLE DB规范的数据源。
使用Visual Basic的类模块也可以很方便地创建子集的数据提供者。
尽管可以在应用程序中直接使用ActiveX数据对象,但ADO Data控件有作为一个图形控件的优势(具有“向前”和“向后”按钮),以及一个易于使用的界面,使您可以用最少的代码创建数据库应用程序。
在Visual Basic的“工具箱”中,不少控件都可以作为数据绑定的控件,包括复选框、组合框、图像、标签、列表框、图片框以及文本框控件等。
此外,Visual Basic还包括了若干种数据绑定的ActiveX控件,诸如DataGrid、DataCombo、Chart以及 DataList控件等。
用户也可以创建自己的数据绑定的ActiveX控件,或从其他开发商购买控件。
Visual Basic以前的版本提供了内在的 Data 控件和 Remote Data 控件(RDC) 来进行数据访问。
这两种控件仍包括在 Visual Basic中,以提供向后兼容。
不过,因为 ADO 的适应性更广,因此建议用户使用ADO Data控件来创建新的数据库应用程序。
详细信息关于数据绑定的控件的完整列表位于“绑定到ADO Data控件的控件”中。
要了解如何使用这些内在的Data 控件或 Remote Data 控件,请参阅“使用 Data 控件”或“使用 Remote Data 控件”。
关于创建数据提供者的详细信息,请参阅“创建数据识别类”。
可能的用法连接一个本地数据库或远程数据库。
打开一个指定的数据库表,或定义一个基于结构化查询语言 (SQL) 的查询、或存储过程、或该数据库中的表的视图的记录集合。
将数据字段的数值传递给数据绑定的控件,可以在这些控件中显示或更改这些数值。
VB动态添加控件的简单方法演示教学
VB动态添加控件并对其进行拖放操作改变位置用Controls.Add添加控件Dim WithEvents mypic As PictureBoxPrivate Sub Command1_Click()Set mypic = Controls.Add("VB.PictureBox", "mypic")mypic.Left = 50mypic.Top = 50mypic.Visible = TrueEnd Sub至于拖放操作,在程序中设置好mypic控件的有关属性后,处理mypic的有关事件即可注意:如果是控件数组的话,建议采用:load 控件数组名(索引) 的方法添加控件'可先手工画一个控件,Visable设置为False,Index设置为0'若需要多个就用load object(index)来加载,并把它们的visable设置为true;不需要多个就真接把原有的那个的visable设成显示就行了。
Private Declare Function ReleaseCapture Lib "user32" () As LongPrivate Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ByVal hwnd As Long, ByVal wMsg As Long, _ByVal wParam As Long, lParam As Any) As LongPrivate Sub Command1_MouseDown(Index As Integer, Button As Integer, _Shift As Integer, X As Single, Y As Single)If Button = 1 ThenReleaseCapture '移动控件SendMessage Command1(Index).hwnd, &HA1, 2, 0&End IfEnd SubPrivate Sub Form_Click()On Error GoTo endsubFor i = 1 To 5Load Command1(i) '生成控件Command1(i).Top = Command1(i - 1).TopCommand1(i).Left = Command1(i - 1).Left + Command1(i -1).WidthCommand1(i).Visible = TrueNextExit SubEnd Sub‘例如:添加一个commandbuttonPrivate Sub Form_Load()Form1.Controls.Add "mandButton", "cmdOk", Picture1 With Form1!cmdOk.Visible = True.Width = 500.Caption = "确认(&Y)"End WithEnd Sub‘删除控件Form1.Controls.Remove "ctl1" ctl1为控件名。
VB中动态创建控件
VB中动态创建控件VB中动态创建控件创建数据驱动窗体所谓数据驱动窗体就是根据所请求的数据的不同生成相应的窗体。
举例来讲,假设你现在有一个数据库,其中有些字段必须根据登录者的身份加以显示,授权级别高的用户可以浏览并修改这些字段的内容;授权级别一般的用户只能浏览这些字段中的数据;授权级别低的用户则不能浏览这些字段中的内容。
要做到这一点就得利用VB动态添加控件的功能。
动态创建控件无论你想要创建何种类型的数据驱动窗体,你必须知道如何在运行时动态地创建控件。
你可以通过控件数组做到这一点,但VB6的Controls集合所提供的Add方法,功能更强大,灵活性更高。
使用该方法,你不需要在设计时将控件的实例放在窗体上。
实际上,用Add 方法你甚至可以创建程序在编译时根本不存在的控件。
这种方法的用法也很简单:‘ 声明一个窗体级的变量Dim WithEvents txtTotal As TextBoxSub CreateTextbox()‘ 创建新的Textbox控件Set txtTotal = Controls.Add("VB.TextBox", "txtTotal")‘ 将控件移动到你所需要的地方txtTotal.Move 1000, 800, 1200, 300‘ 创建时,所有的控件都是不可见的txtTotal.Visible = TrueEnd Sub请注意Add方法的第二个参数:分配给控件的名称。
从代码可读性出发,这个名称一般都与变量名相同。
你可以用这个名称从Controls集合中获取相应的控件或移除该控件。
例如:Controls.Remove "txtTotal"在变量声明时加上WithEvents关键字,即使在设计时窗体不存在该控件,你也可以为该控件的事件编写代码。
上面所讲的方法只适合解决VB内置的控件。
例如,当你要添加一个TreeView控件时,VB会要求你证明你已经得到了合法的授权来创建该控件的实例。
在 VB 中动态添加和删除控件
Wi t h e x t C t l ‘ 为控T u e’ r He i g h t=2 0 0 0
.
.
、 矾d t h=2 0 0 0
. .
Ca p t i o n-I ’ 动态按钮 ”
Wi d nl =2 0 0 0 To p= 1 0 0 0 L e f t =1 0 0 0
置其属性 ,也就是说控件在设计 时已经存在 , 在程序运行过程 中只 能改变其属性 。那么 能不 能在程序运行过程 中添加 或删 除未 引用 的控件 呢? 回答是肯定 的,在程序 运行 过程 中即可以 添加所需要 的控件 , 当用完时就可删除该控件 ,
En dW i t h
.
E n d Su b
F o r m1 . C o n t r o l s . R e mo v e ” b t n O b j 该控件 的名 称为 b t n Ob j
E n d S u b
下:
总 之 ,通 过 Ad d方 法 和 R e mo v e方 法 可
以动 态 的添加 和删 除控件 ,使在 编程 时对 控
用是在创建程序界面时添加 ,然后根据需要设
性
Wi t h F o r ml ! c m d O b j 1 ‘ 为控 件设 置属
Vi s i b l e= T r u e
Ad d ( ” ms d a ag t r i d l i b . d ta a g r i d ” , _” d a ag t r i d 1 ” )
_
个控件并返 回一个对该控件 的引用 。语法如
o b j e c t . Ad d( P r o g l D, n a me , c o n t a i n e r ) 0b j e c t必 需的。一 个对象表达 式 P r o g I D 必 需 的。 一 个标 识 控 件 的 字 符
VB怎样动态加载ActiveX控件
VB怎样动态加载ActiveX控件熟悉VB的朋友对使用ActiveX控件一定不会陌生,众多控件极大地方便了编程,但唯一的缺陷是不能动态加载控件,必须在设计时通过引用,将控件放置在窗体上。
VB6.0已能够解决该问题,只是帮助中没有明确说明,并且没有描述到一些关键功能,由于以前的版本中可以动态创建进程外服务:如果对象是外部可创建的,可在Set 语句中用New 关键字、CreateObject 或GetObject 从部件外面将对象引用赋予变量。
如果对象是从属对象,则需使用高层对象的方法,在Set 语句中指定一个对象引用:Dim xlApp1 As Excel.ApplicationSet xlApp1 = New Excel.Application或Dim xlApp As Object '定义存放引用对象的变量。
Set xlApp = CreateObject("excel.application")xlApp.Visible = True这些语法很容易造成误导,以为动态加载ActiveX控件也是此方法,可能有朋友也象我一样利用CreateObject尝试了无数次,却无功而返,不知微软公司是出于何种考虑,动态加载ActiveX控件是扩展控件集合的方式实现,通过实际摸索,终于就如何实现动态ActiveX控件找出了一条切实可行的方法,下面以一个具体的实例来详细说明。
一、ActiveX控件ActiveX 控件是Visual Basic 工具箱的扩充部分。
使用ActiveX 控件的方法与使用其它标准内装的控件,如CheckBox 控件,完全一样。
在程序中加入ActiveX 控件后,它将成为开发和运行环境的一部分,并为应用程序提供新的功能。
ActiveX 部件通过客户端/服务器关系与应用程序—及与部件相互之间—交互作用。
客户端是使用部件功能的应用程序代码或部件。
服务器是部件及其关联的对象。
vb动态添加删除控件汇总
VB 动态添加删除控件汇总1. 概述在使用Visual Basic 进行程序设计的过程中,如果能在运行时刻动态地创建和删除控件,可以极大地丰富界面的处理和变化。
本人在设计网络监控系统时,需要在原理图与实物示意图间切换。
切换的过程采用本文介绍控件的动态创建和删除来实现,有效地节省了系统资源,同时也有利于简化界面的维护。
下面将就Visual Basic 6.0 中的控件在运行时刻的创建和删除的两种方法——控件数组和控件集合作详细的阐述。
2. 基于控件数组的动态控件的创建与删除vb 中的控件数组实际上也是一种数组,其中的每个控件具有相同的Name 属性,但具有不同的Index 属性,在这里Name 属性类似于数组的名字,而Index 属性类似于数组的下标同时,控件数组也支持普通VBA 数组的LBound 、UBound 和Count 方法,控件数组中的控件可以共享一个事件过程,便于代码的编写和集中处理,这正是使用控件数组的最大的理由。
但是控件数组与普通的数组并非完全一样,它不需要定义大小,只有这样我们才可以动态的扩展[kuo zhan]它。
下面给出利用Load 命令动态添加控件和Unload 命令动态删除控件的一般方法:(1)首先在窗体上放置一个TextBox ,其Name 属性设置为Text1 ,Index 属性设置为0 ,这样我们就创建了一个TextBox 控件数组,其中有一个成员。
(2)在窗体上放置一个命令按钮Command1 ,在其Click 事件中添加如下的代码:LoadText1(1)Text1(1).left=0Text1(1).visible=true(3)在窗体上放置一个命令按钮Command2 ,在其Click 事件中添加如下的代码:Unload Text1(1)(4)运行。
单击命令按钮Command1 ,窗体上会出现一个新的文本框;单击命令按钮Command2 ,窗体上刚出现的新的文本框就被删除。
vb中如何动态添加删除控件
vb中如何动态添加删除控件用Controls.Remove(控件) 动态删除控件。
注意:在VB中只能动态删除那些动态添加的控件;不允许删除在窗体设计器上布置的控件!示例如下:(1)创建一个VB工程(2)在Form1上布置两个Command(3)窗体代码Option Explicit' 声明要被动态添加/删除的控件Dim x As Label'-----------------------------' 动态添加一个Label控件'-----------------------------Private Sub Command1_Click()If x Is Nothing ThenSet x = Controls.Add("bel", "label1")x.Move 150, 150x.AutoSize = Truex.Caption = "这个是动态添加的标签" x.Visible = TrueEnd IfEnd Sub'-----------------' 动态删除控件'-----------------Private Sub Command2_Click()If x Is Nothing Then Exit Sub Controls.Remove xSet x = NothingEnd SubPrivate Sub Form_Load() Command1.Caption = "添加控件" Command2.Caption = "删除控件" End Sub(4)运行窗体启动点击“添加控件”按钮点击“删除控件”按钮。
VB2010入门实例1
教程1:创建图片查看器Visual Studio 2010其他版本25(共34)对本文的评价是有帮助- 评价此主题在本教程中,您将生成一个从文件加载图片并将其显示在窗口中的程序。
您将学习如何拖动控件(如窗体上的按钮和图片框)、设置控件属性,以及如何使用容器来平滑地调整窗体的大小。
您还将开始编写代码。
您将学习如何:∙创建新项目。
∙测试(调试)应用程序。
∙向窗体中添加基本控件(如复选框和按钮)。
∙使用布局在窗体上定位控件。
∙向窗体中添加“打开文件”和“颜色”对话框。
∙使用IntelliSense 和代码段编写代码。
∙编写事件处理程序方法。
当您完成时,程序将类似下图所示。
在本教程中创建的图片说明步骤1:创建Windows 窗体应用程序项目创建Windows 窗体应用程序项目1.在“文件”菜单上,单击“新建项目”。
2.如果没有使用Visual Studio 学习版,您需要先选择一种语言。
从“安装的模板”列表中选择“C#”或“VisualBasic”。
3.单击“Windows 窗体应用程序”图标,输入“PictureViewer”作为名称,然后单击“确定”。
Visual Studio 将自动为您创建解决方案。
4.在“文件”菜单上,单击“全部保存”;或者在工具栏上单击“全部保存”按钮,此按钮如下所示。
“全部保存”工具栏按钮说明5.确保项目保存在“我的文档”文件夹下的某个文件夹中。
6.确认选中“创建解决方案的目录”复选框。
7.单击“保存”。
说明您可能已经注意到“解决方案”和“项目”这两个词具有不同的含义,本教程稍后将对此进行解释。
下图显示IDE 窗口应具有的外观。
IDE 窗口8.如果您的屏幕与上面的图片不太一样,请在“窗口”菜单上,单击“重置窗口布局”。
如果缺少任何窗口,请在“视图”菜单上,单击“属性窗口”或“解决方案资源管理器”。
如果有多余的窗口打开,请单击右上角的“关闭”(x) 按钮。
9.查看图片。
从左上角开始沿逆时针方向,图片将依次显示:∙主窗口您可在此处执行大部分的工作。
vb的按钮控件 使用Frame控件 vb的FlexGrid控件
vb的按钮控件发布时间:2007-05-05 来源:未知作者:未知使用CommandButton控件命令按钮控件被用来启动、中断或结束一个进程。
单击它时将调用已写入Click 事件过程中的命令。
大多数Visual Basic应用程序中都有命令按钮,用户可以单击按钮执行操作。
单击时,按钮不仅能执行相应的操作,而且看起来就象是被按下和松开一样,因此有时称其为下压按钮。
详细信息关于CommandButton 控件的简单示例,请参阅第三章,“窗体、控件和菜单”中的“单击按钮执行操作”。
向窗体添加命令按钮在应用程序中很可能要使用一个或多个命令按钮。
就象在其它控件绘制按钮那样,在窗体上添加命令按钮。
可用鼠标调整命令按钮的大小,也可通过设置Height 和Width 属性进行调整。
设置标题可用Caption 属性改变命令按钮上显示的文本。
设计时,可在控件的“属性”窗口中设置此属性。
在设计时设置Caption 属性后将动态更新按钮文本。
Caption 属性最多包含255 个字符。
若标题超过了命令按钮的宽度,则会折到下一行。
但是,如果控件无法容纳其全部长度,则标题会被剪切。
可以通过设置Font 属性改变在命令按钮上显示的字体。
创建键盘快捷方式可通过Caption 属性创建命令按钮的访问键快捷方式,为此,只需在作为访问键的字母前添加一个连字符(&)。
例如,要为标题"Print" 创建访问键,应在字母"P" 前添加连字符,于是得到"&Print"。
运行时,字母"P" 将带下划线,同时按ALT+P 键就可选定命令按钮。
注意如果不创建访问键,而又要使标题中包含连字符但不创建访问键,应添加两个连字符(&&)。
这样一来,在标题中就只显示一个连字符而不显示下划线。
指定Default 和Cancel 属性在每个窗体上部可选择一个命令按钮作为缺省的命令按钮,也就是说,不管窗体上的哪个控件有焦点,只要用户按ENTER 键,就已单击此缺省按钮。
在VB.NET中实现动态增加控件
在VB.NET中实现动态增加控件作者:李清霞冯向科邓莹来源:《消费导刊·理论版》2007年第06期[摘要]当用户对记录表进行排序时,记录表的长度往往是不固定的;如果每一个TextBox 控件显示一条记录,则这样的TextBox的数目也是不确定的。
对于Windows窗体中的绝大多数控件来说,它们是在系统绘制窗体的同时一起被绘制了,因此它们不能被动态增加。
通过手工增加控件的方式,我们可以在窗体的任何位置添加任意大小、任意数量的任意控件,从而实现动态增加控件的效果。
[关键词]控件窗体类对象继承属性一、前言对于Windows窗体中的绝大多数控件来说,它们是随着窗体一起出现的。
例如:当Windows XP进入使用界面后,“开始”按钮就出现在整个屏幕的左下角,除非用户重新设置,否则每次都是一个按钮出现在屏幕左下角。
但也有这样的情况:在实现和用户交互工作时,系统最初可能并不清楚整个屏幕或窗体中究竟有多少个控件,具体数目取决于用户的输入值。
在这种情况下,把控件和窗体一起绘出是不可能的,这就要求程序员先绘好窗体,然后根据和用户交互工作的结果,实现在窗体中动态地绘出所需的各种控件。
一般说来,要在窗体中增加一个控件,主要完成三个方面的工作:控件的声明、控件的装载和控件的显示。
控件的声明包括用继承的方法声明控件,创建控件的实例对象等;控件的装载工作指添加控件作为母窗体的控件对象;控件的显示工作包括控制控件在窗体出现的位置、大小、显示文本和索引号等相关内容。
下面分别就三个方面进行介绍,(一)控件的声明在Microsoft Visual Basic .NET环境中,类的概念是一个非常重要的内容,在其上运行的类模块、窗体、各种控件对象等都作为一个类来处理,它们的区别已经不存在了,几乎所有的程序都是由类组成的,它们被按照不同的功能分在不同的功能类库里。
在这一点上,它和Visual Basic 6.0及其前期版本有很大区别。
VB2010
(1)1. 打开VB2010,新建项目》库类,写好代码后生成2. 新建另外一个工程,如窗体工程,在工程的项目》项目属性里选“引用”,并点“引用路径(R)", 找到你刚做好的.dll,引用之,并在属性窗口里将“拷贝到本地”设为True3. 在调试窗口程序时,同事调试.dll(2)5.类Thread可以在System.Threading名字空间里得到,它定义了处理线程的属性和方法。
6.在类Thread的构造器中,我们使用了类ThreadStart,类ThreadStart是一个代表,标志着当一个线程开始时就开始执行定义的方法。
7.为了执行定义的方法,我们实际调用的是线程的Start()方法。
8.用VBC来编译上面的程序:vbc /out:threadtest.exe threadtest.vb9.运行编译后的程序,我们将会看到我们定义的两个方法和main()方法的混合输出,这就说明每一个方法都在自己的线程下运行。
10.除了上面的方法,线程还有下面常用的方法:Stop():停止线程的运行。
Suspend():暂停线程的运行。
Resume():继续线程的运行。
Sleep():停止线程一段时间(单位为毫秒)。
dim mouse_x as integer = 0, mouse_y as integer = 0private sub picturebox1_mousedown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDownif e.button = mousebuttons.left thenif mouse_x = 0 and mouse_y = 0 thenmouse_x = e.X '记录坐标x和ymouse_y = e.Yelse'''画线'picturebox1.creategraphics().drawline(pens.black, mouse_x, mouse_y, e.x, e.y)'''向右下角画矩形'picturebox1.creategraphics().drawrectangle(pens.black, mouse_x, mouse_y, e.x - mouse_x, e.y - mouse_y)'''画圆'picturebox1.creategraphics().drawellipse(pens.black, mouse_x, mouse_y, e.x - mouse_x, e.y - mouse_y)mouse_x = 0 '恢复空坐标mouse_y = 0end ifelsemouse_x = 0 '当用户使用右键时,撤销之前的记录mouse_y = 0end ifend sub'''向右下角画实心矩形pictureBox1.creategraphics().fillrectangle(brushes.lime, mouse_x, mouse_y, e.x - mouse_x, e.y - mouse_y)'轮廓picturebox1.creategraphics().drawrectangle(pens.black, mouse_x, mouse_y, e.x - mouse_x, e.y - mouse_y)教你如何动态添加控件?'首先我们来定义一个全新的控件,比如BUTTONDim OneButton As New Button'定义按钮的标题OneButton.Text = "OneButton"‘定义按钮的大小OneButton.Width = 100OneButton.Height = 24’定义按钮的位置OneButton.Location = New Point(12, 12)’当然这里还可以定义按钮的别的属性,不做举例了‘这一步很重要,在窗体上添加按钮,如果不添加是看不到这个按钮的Me.Controls.Add(OneButton)‘按钮已经添加到了窗体上,但是点击它,没有反应对吗?是的,你还没有给他功能当然没反应’继续楼上的代码'首先我们来定义一个全新的控件,比如BUTTONDim OneButton As New Button'定义按钮的标题OneButton.Text = "OneButton"'定义按钮的大小OneButton.Width = 100OneButton.Height = 24'定义按钮的位置,当然这里还可以定义按钮的别的属性,不做举例了OneButton.Location = New Point(12, 12)'这一步很重要,在窗体上添加按钮,如果不添加是看不到这个按钮的Me.Controls.Add(OneButton)‘这里是为按钮的单机时间指定的过程(句柄)AddHandler OneButton.Click, AddressOf OneButton_Click’OneButton_Click 是什么?是一个过程,你指定的任何一个过程,当然如果你没有创建他是不存在的,所以我们还要定义一个过程,供其使用Sub OneButton_Click()MsgBox("You Did It!")End Sub全部的代码如下:Public Class Form1Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load'首先我们来定义一个全新的控件,比如BUTTONDim OneButton As New Button'定义按钮的标题OneButton.Text = "OneButton"'定义按钮的大小OneButton.Width = 100OneButton.Height = 24'定义按钮的位置,当然这里还可以定义按钮的别的属性,不做举例了OneButton.Location = New Point(12, 12)'这一步很重要,在窗体上添加按钮,如果不添加是看不到这个按钮的Me.Controls.Add(OneButton)AddHandler OneButton.Click, AddressOf OneButton_ClickEnd SubSub OneButton_Click()MsgBox("You Did It!")End SubEnd Class。
VB中动态控件及事件的添加
Set cmd = Controls.Add("mandbutton", "cmd1")
cmd.Visible = True
End Sub
Private Sub cmd_click() '动态按钮事件
MsgBox ""
End Sub
关键字说明varname是一个用来响应由activex对象触发的事件的对象变量
VB怎么给动态的按扭添加事件啊
1》
Private Sub Command1_Click()
Dim command As CommandButton
Set CommandButton = Controls.Add("mandButton", "Cmd")
With form1!
.Visible = True
.Width = 1000
.Height = 1000
.Top = 500
.Left = 500
End With
怎么给CMD控件加事件啊
建一个Command1。
===================
DimWithEventscmd As CommandButton'这一句特别重要
With CommandButton
.Left = 100
.Top = 100
.Width = 2000
.Height = 375
.Caption = Time
.Visible = True
End With
End Sub
2》
form1.Controls.Add("VB.textbox", "text1")
vb控件数组的使用
vb控件数组的使用VB控件数组的使用在VB编程中,控件数组是一种非常有用的功能,它可以让我们更方便地对多个控件进行操作和管理。
控件数组允许我们将一组相同类型的控件组织在一起,并通过索引来访问它们,从而提高编程效率和代码的简洁性。
控件数组的定义非常简单,只需要在声明控件时加上一个方括号,用来表示这是一个控件数组。
例如,我们可以定义一个名为btnArray的按钮数组,代码如下:Dim btnArray(10) As Button上述代码定义了一个包含10个按钮的按钮数组。
我们可以通过索引来访问数组中的按钮,例如btnArray(0)表示第一个按钮,btnArray(1)表示第二个按钮,依此类推。
使用控件数组可以简化我们对多个控件的操作。
例如,如果我们想要给按钮数组中的所有按钮设置相同的属性,我们只需要使用一个循环来遍历数组,并对每个按钮应用相同的属性即可,代码如下:For i As Integer = 0 To btnArray.Length - 1btnArray(i).Text = "按钮" & (i + 1)btnArray(i).BackColor = Color.RedNext上述代码将按钮数组中的所有按钮的文本设置为"按钮1"、"按钮2"、"按钮3"等,并将它们的背景颜色设置为红色。
除了设置属性,控件数组还可以方便地管理多个控件的事件。
例如,如果我们想要为按钮数组中的所有按钮添加相同的点击事件处理程序,我们只需要使用一个循环来遍历数组,并为每个按钮添加相同的事件处理程序即可,代码如下:For i As Integer = 0 To btnArray.Length - 1AddHandler btnArray(i).Click, AddressOf btn_ClickNextPrivate Sub btn_Click(sender As Object, e As EventArgs)Dim btn As Button = DirectCast(sender, Button)MessageBox.Show("您点击了按钮:" & btn.Text)End Sub上述代码将为按钮数组中的所有按钮添加一个名为btn_Click的点击事件处理程序,当任何一个按钮被点击时,都会弹出一个消息框显示按钮的文本。
ExcelVBA窗体批量创建插件(按钮,标签,单选......)
ExcelVBA窗体批量创建插件(按钮,标签,单选......)在excel 文件工作表中创建按钮插件,按钮名称为CommandButton1,如下所示:粘贴下面的代码至创建按钮工作表后台书写代码处,点击按钮如下所示:Private Sub CheckBox1_Click()End SubPrivate Sub CommandButton1_Click()Dim TempFormDim LeftPos As IntegerDim X As IntegerDim i As IntegerDim TopPos As Integer'创建窗体Set TempForm = ActiveWorkbook.VBProject.VBComponents.Add(3) '声明创建窗体插件Dim NewOptionButton As MSForms.OptionButtonDim newCommandButtonn As mandButton Dim newCheckBox As MSForms.CheckBoxDim newLabel As belLeftPos = 4k = 1TopPos = 5'循环创建单选框个数(可根据实际情况而定)For i = 1 To 10LeftPos = 4'创建单选框Set NewOptionButton = TempForm.Designer.Controls.Add("forms.OptionButton.1") '设置单选框属性With NewOptionButton.Width = 60.Caption = k & "℃".Height = 15.Left = LeftPos.Top = TopPos.Tag = k & "℃".AutoSize = TrueEnd WithLeftPos = LeftPos + 30k = k + 1TopPos = i * 20 + 5'创建单选框宏代码With TempForm.CodeModuleX = .CountOfLines.InsertLines X + 1, "Private Sub OptionButton" & i & "_Click()".InsertLines X + 2, " bel1.caption=""" + "你的选择:" + "" + CStr(i) + "" + "℃" + """".InsertLines X + 3, "End Sub"End WithNext i'创建按钮(可以批量创建)Set newCommandButtonn = TempForm.Designer.Controls.Add("mandButton.1") '设置按钮属性 = "MyCommandButton"newCommandButtonn.Object.Caption = "确定"With newCommandButtonn.Width = 60.Height = 20.Left = LeftPos.Top = TopPos + 40.AutoSize = FalseVisible = TrueEnd With'创建标签(可以批量创建)Set newLabel = TempForm.Designer.Controls.Add("bel.1")'设置标签属性newLabel.Caption = ""With newLabel.Width = 120.Height = 20.Left = LeftPos.Top = TopPos.AutoSize = FalseVisible = TrueEnd With'设置创建按钮宏代码With TempForm.CodeModuleX = .CountOfLines.InsertLines X + 1, "Private Sub MyCommandButton_Click()".InsertLines X + 2, "msgbox bel1.Caption + me.check.caption ".InsertLines X + 3, "me.hide".InsertLines X + 4, "end sub"End WithSet newCheckBox = TempForm.Designer.Controls.Add("Forms.CheckBox.1") newCheckBox.Caption = "java" = "check"With newCheckBox.Width = 120.Height = 20.Left = LeftPos.Top = TopPos + 20.AutoSize = FalseVisible = TrueEnd With'设置窗体属性With TempForm.Properties("Caption") = "窗体界面".Properties("Width") = LeftPos + 200.Properties("Height") = TopPos + 100.Properties("Left") = 160.Properties("Top") = 100End With'显示窗体erForms.Add().Show'点击窗体关闭打叉图标,则关闭窗体ActiveWorkbook.VBProject.VBComponents.RemoveVBComponent:=TempForm End Sub点击事件如图所示:小例子,有兴趣者不妨看看,其实程序都是相通的,所谓条条大路通罗马,(*^__^*) 嘻嘻……。