vb动态添加删除控件汇总
VB常用控件属性汇总

Visual Basic 常用控件的属性、事件和方法该属性决定了控件上显示的内容。
文本框控件无控件是否可操作. 当设置为False时,呈暗淡色控件是否可见.当设置为False时, 用户看不到,但控件本身存在。
在属性窗口可直接设置字体字体大小粗体斜体删除线下划线窗体的Font属性可使窗体上的对象字体设置相同。
在代码中可用一组Font属性设置:Fontname 字体Fontsize 字体大小Fontbold 是否是粗体组合框基本属性Name、Height、width、Top、L,eft、Enabled、Visible和Index组合框与列表框具有相同的属性:List、ListIndex、ListCount、Selected、Sorted、Text、MultiSelect,Style等。
组合框的特有属性:组合框有3种不同的样式,其下拉式组合框、简单组合框可输入内容,但必须通过AddItem 方法加入。
组合框的风格是由Style属性值决定的。
设置组合框的Style属性可以选用组合框的3种样Style属性为0时,是下拉式组合框,默认状态;Style属性为1时,是简单组合框;Style属性为2时,是下拉列表框。
(1)下拉组合框下拉组合框,显示在屏幕上的仅是文本编辑器和一个下拉箭头。
与下拉列表框相似,蛋下拉列表框可以通过输入文本的方法在表项中选择。
可识别dropdown click channge事件。
(2)简单组合框简单组合框,列出所有的项目供用户选择,右边没有下拉箭头,列表框不能收起和下拉。
与文本编辑器一起显示在、屏幕上。
用户可在文本框中直接输入列表项中没有的选项,也可从列表中选择。
可以识别click channge事件。
(3)下拉式列表框下拉式列表框与下拉组合框相似,区别是用户不能输入列表框中没有的项,只能在列表中选择。
不能识别dbclick 和changge 事件。
可识别dropdown click事件组合框拥有列表框和文本框的大部分属性。
在 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 必 需 的。 一 个标 识 控 件 的 字 符
(完整版)VB6+Access对数据库进行添加删除项目

(完整版)VB6+Access对数据库进行添加删除项目附件2:VB6+Access编程中的数据库操作方法例1:首先,在工程里引用microsoft activex data objects 2.7 library Dim cn As New ADODB.Connection, rs1 As New ADODB.Recordset, sql As String '在通用声明里定义,其中cn是连接对象,rs1是记录集,sql是查询语句cn.Open "provider=microsoft.jet.oledb.4.0;data source=" + App.Path + "\数据库名.mdb" + ""sql = "select * from 表名"rs1.Open sql, cnrs1.MoveFirstDo While Not rs1.EOFCombo1.AddItem rs1("字段名")rs1.MoveNextLooprs1.Close例2:一个用户登录系统'准备工作: 数据库D:\Mydb.mdb 数据库中,建数据表:UserInfo,数据表中,建字段:User,Password,并添加一条记录'点工程->引用选中Microsoft Activex Data Objects 2.7 Library '控件:添加一个文本框,一个命令按钮Private Sub Command1_Click()Dim s As StringDim Conn As New ADODB.ConnectionDim Rs As New ADODB.RecordsetConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;DataSource=D:\mydb.mdb"'请将数据库名及路径换成你的实际数据库名及路径Dim UserName As StringDim Password As Strings = Text1.TextIf s = "1" Or s = "2" ThenUserName = InputBox("请输入用户名")Password = InputBox("请输入用户密码")sql = "Select * From [UserInfo] where User='" & UserName & "'"'UserInfo请换成你的实际数据表名Rs.Open sql, Conn, 1, 3If Rs.EOF ThenMsgBox "没有找到此用户"ElseIf Rs("Password") = Password ThenIf s ="1" ThenMsgBox "123"ElseIf s = "2" ThenMsgBox "456"End IfElseMsgBox "密码错误"End IfEnd IfEnd IfEnd Sub上面的例子实现了查询如果是要添加,删除,更新等操作,只要编写相应的SQL语句,再用Conn.Execute SQL 就可以了,如:添加的:SQL="Insert Into [UserInfo](User,Password) Values('aaaa','1234')"Conn.Execute SQL '执行后,就添加了一条记录删除:SQL="Delete From [UserInfo] Where User='aaaa'"Conn.Execute SQL '删除用户名为aaaa的用户记录更新:SQL="Update [UserInfo] Set Password='abcdefg' Where User='aaaa'"Conn.Execute SQL '执行后,修改用户aaaa的密码为abcdefg以上只是示例,在实际使用过程中,可以将一些内容用控件输入等方式进行,这样就有很大的灵活性了例3:Private Sub Form_Load()Dim cnn As ADODB.ConnectionDim my_recordset As ADODB.RecordsetDim connect_string As StringDim statestring As StringSet cnn=New ADODB.ConnectionSet my_recordset=New ADODB.Recordset'连接Access数据库connect_string="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Pe rsist Security Info=False"cnn.Open connect_stringSelect Case cnn.StateCase adStateClosestatestring="adStateClosed"Case adStateOpenstatestring="adStateOpen"End Select'显示连接的状态MsgBox "连接成功!",,statestring'对wzdz表进行查询操作my_recordset.Open "Select * from wzdz",cnnmy_recordset.CloseEnd Sub例4:Dim strConn As String '连接字符串Dim strSql As String 'SQL命令Dim conn As ADODB.Connection '数据源Dim Ado As ADODB.Recordset '记录集strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\aaa.mdb;Persist Se curity Info=False"strSql = "SELECT * FROM bbb"Set conn = New ADODB.Connectionconn.ConnectionString = strConnconn.OpenVB中怎么对数据库进行添加删除修改的操作我用的是DATA控件我已经把VB和ACCESS 2000连接上了,VB 也能正常访问到数据了我希望可以加几的按钮,拥有添加,删除,修改,查询的功能(相关的数据改动就在原本浏览数据的TEXT中录入就行了)分享到:Private Sub Command1_Click()For i = 0 To 5Text1(i).Text = ""Next iAdodc1.RecordSource = "select * from " & s1 & " order by 编号"Adodc1.RefreshIf Adodc1.Recordset.RecordCount > 0 ThenAdodc1.Recordset.MoveLastText1(0).Text = "G" + Format((Val(Right(Trim(Adodc1.Recordset.Fields("编号")), 4)) + 1), "0000")ElseText1(0).Text = "G0001"End IfEnd SubPrivate Sub Command2_Click()If Adodc1.Recordset.EOF = False Thenc = MsgBox("您确认要删除该记录吗?", vbOKCancel, "删除提示信息")If c = vbOK ThenAdodc1.Recordset.DeleteAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfElseMsgBox "当前数据库中没有可删除的数据记录", vbOKOnly, "提示信息"End IfEnd SubPrivate Sub Command3_Click()If Text1(0).Text = "" Or Text1(1).Text = "" ThenMsgBox "请选择需要改动的记录信息!", vbOKOnly, "错误提示"Elsec = MsgBox("确定要修改该记录吗?", vbOKCancel, "提示信息")If c = vbOK Then '如果确认修改的话进行修改操作If Text1(1).Text = "" ThenMsgBox "姓名不能为空值!", 48, "修改信息提示"Else'连接所要修改的数据库con.Open "Provider=SQLOLEDB.1;Password=2752;Persist Se curity Info=True;User ID=sa;Initial Catalog=sample;Data Source=JAMLEEPC"'开始修改数据库con.Execute ("UPDATE " & s1 & " SET 姓名='" & Text1(1). Text & "',年龄=" & Text1(2).Text & ",学历='" & Text1(3).Text & "',年级=" & Text1(4).Text & ",入学时间='" & Text1(5).Text & "' where 编号='" & Trim(Text1(0)) & "'")MsgBox "信息修改成功", 64, "修改信息提示"con.CloseAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfEnd IfEnd IfEnd SubPrivate Sub Command4_Click()Adodc1.RecordSource = "select * from 人员表where 编号='" + Text1(0).T ext + "'"Adodc1.RefreshIf Adodc1.Recordset.RecordCount > 0 ThenMsgBox "该信息已存在,信息保存不成功", 64, "保存信息提示"Elsecc = MsgBox("您确定要保存该信息吗?", 33, "信息保存提示") If cc = vbOK ThenIf Text1(1).Text = "" Or Text1(2).Text = "" Or Text1(3).Text = "" Or Text1(4).Text = "" Or Text1(5).Text = "" ThenMsgBox "请确认,人员的姓名、年龄、学历、年级和入学时间不能为空", 48, "保存信息提示"Elsecon.Open "Provider=SQLOLEDB.1;Password=2752;Persist Security Info=True;User I D=sa;Initial Catalog=sample;Data Source=JAMLEEPC"con.Execute ("insert into 人员表values('" & Text1(0).Text & "','" & Text1(1).Text & "','" & Text1(2).Text & "','" & Text1(3).Text & "','" & Text1(4).Text & "', '" & Text1(5).Text & "')")MsgBox "信息修改成功", 64, "修改信息提示"con.CloseAdodc1.RecordSource = "select * from 人员表"Adodc1.RefreshEnd IfElseEnd IfEnd IfSet DataGrid1.DataSource = Adodc1End Sub给你段代码参考下,这个就是添加,删除,修改的代码。
vb listview控件的基本用法

vb listview控件的基本用法VB Listview控件的基本用法[Listview控件的介绍]VB Listview控件是一种在Windows应用程序中常用的控件,它可以显示和编辑一个或多个带有多列的项。
每个项都可以有图标、文本和子项,可以根据需要自定义样式和布局。
Listview控件可以用于显示文件列表、数据库结果集、目录树等等,是开发Windows界面的常用工具之一。
[Listview控件的常见属性]1. Columns属性:列集合,用于定义和管理控件的列。
可以通过Add方法添加新的列,通过Remove方法删除现有的列。
2. Items属性:项集合,用于定义显示在控件中的项。
可以通过Add方法添加新的项,通过Remove方法删除现有的项。
3. SubItems属性:子项集合,用于定义项的子项。
每个项可以有多个子项,每个子项占用一个列的空间。
4. View属性:视图模式,用于定义控件的布局风格。
常见的视图模式有大图标、小图标、列表、详细信息等。
5. FullRowSelect属性:是否在选中项时同时选中整行。
如果设置为True,则选中项时会同时选中所在行的其他列。
6. GridLines属性:是否显示网格线。
如果设置为True,则控件会在列和行之间显示灰色的网格线。
[Listview控件的常见事件]1. ColumnClick事件:当用户单击列标题时触发,可以用于对项进行排序。
2. ItemActivate事件:当用户双击项时触发,可以用于执行双击项的操作。
3. ItemChecked事件:当用户勾选或取消勾选项时触发,可以用于处理选中项的更改。
4. ItemDrag事件:当用户拖动项时触发,可以用于处理拖动项的操作。
5. ItemSelectionChanged事件:当选中项发生更改时触发,可以用于处理选中项的变化。
[Listview控件的基本使用步骤]步骤1:在VB窗体上添加一个Listview控件。
在VB中动态创建与卸载控件方法研究——以学校考勤系统为例

关键词 : VB ; 软件 ; 动态 ; 控 件
中 图分 类 号 : TP 3 0 3
文 献标 识 码 : A
文章 编 号 : 1 6 7 2 — 7 8 0 0 ( 2 0 1 3 ) 0 0 5 — 0 0 3 2 — 0 2
为:
0 引 言
用 VB开 发 软 件 , 有 时 会 碰 到 控 件 的 实 际 使 用 数 量 不 确 定 的情 况 。比 如 , 在 开发 学校 考勤 系统 时 , 用 一 个 复 选
但是 , 这 种 创 建 控 件 方 法 需 要 人 工 指 定 相 应 的 属 性 值, 并通过 Wi t h Ev e n t s 指 定 控 件 的事 件 。
通 过 对 比 以上 两 种 方 法 , 开 发 学 校 考 勤 系统 中碰 到 的
勤, 班级有多少人就需要 显示 多少个 复选 框 , 然ห้องสมุดไป่ตู้而 每 个 班
级的学生数不一定相同 , 这 时 候 如 何 实 现 在 一 个 窗体 中灵
活 地 显 示 各 个 班 级 的名 单 呢?
班 级 名 单 情 况 不 一 的 问题 , 用 控 件 数 组 的方 法 解 决 比较 合 适 。 因为 , 复 选 框 的一 些 属 性 值 都 要 符 合 一 定 的 规 律 , 比 如位置 、 名称 , 同 时 系统 还 需 要 对 复选 框 进 行循 环读 取 , 所 以, 采 用 控 件 数组 的 方 法更 优 。
第1 2 卷 第5 期 2 0 l 3 年 5 月
软 什 导 刊
S of t wa r e Gui de
v0 1 . 1 2N O 5
Ma v. 2 0l 3
在V B中 动 态 创 建 与 卸 载 控 件 方 法 研 究
vba listview的用法

在VBA(Visual Basic for Applications)中,ListView控件通常用于显示和操作数据列表。
以下是一些基本的使用方法:1、添加ListView控件:在VBA中,你可以通过设计视图将ListView控件添加到表单或用户窗体中。
2、设置属性:设置ListView控件的属性,如列标题、列宽、背景色等。
3、添加数据:使用AddItem方法向ListView中添加数据。
例如:vbaListView1.AddItem "Item 1"ListView1.AddItem "Item 2"4、设置子项:对于每个主项,你可以设置一个或多个子项。
例如:vba复制代码ListView1.ListItems(0).SubItems(0) = "SubItem 1"ListView1.ListItems(0).SubItems(1) = "SubItem 2"5、处理事件:你可以为ListView控件添加事件处理程序,如单击事件、双击事件等。
6、使用DetailView:你可以使用DetailView属性来设置ListView的显示方式。
默认是ReportView,可以更改为IconView或SmallIconView。
7、排序和筛选:使用Sort方法对ListView中的数据进行排序,使用Filter方法进行筛选。
8、自定义列:你可以自定义列标题,并设置每个列的数据类型和宽度。
9、删除项目:使用RemoveItem方法删除ListView中的特定项目。
例如:vbaListView1.RemoveItem 010、更新数据源:如果ListView控件绑定到一个数据源,你可以使用UpdateData方法来更新数据源。
11、获取选中项:你可以使用SelectedItem或SelectedIndices属性来获取选中的项目或索引。
VB常用控件的方法详解

VB常用控件的方法详解1.按钮控件(Button):- Click事件:当用户单击按钮时触发的事件。
- Text属性:按钮上显示的文本。
- Enabled属性:是否启用按钮。
- Visible属性:按钮是否可见。
- BackColor属性:按钮的背景颜色。
- ForeColor属性:按钮的前景颜色。
2.文本框控件(TextBox):- Text属性:文本框中显示的文本内容。
- ReadOnly属性:文本框是否为只读状态。
- PasswordChar属性:设置密码框中字符显示的方式。
- MaxLength属性:文本框最大可输入的字符数限制。
4.列表框控件(ListBox):- Items属性:列表框中的项,可以通过Items属性进行添加、删除、修改操作。
- SelectedIndex属性:获取或设置当前选择项的索引。
- SelectedItem属性:获取或设置当前选择项的文本值。
- Items属性:组合框中的选项,可以通过Items属性进行添加、删除、修改操作。
- SelectedIndex属性:获取或设置当前选择项的索引。
- SelectedItem属性:获取或设置当前选择项的文本值。
6.复选框控件(CheckBox):- Checked属性:表示复选框是否被选中。
- Text属性:复选框显示的文本。
7.单选按钮控件(RadioButton):- Checked属性:表示单选按钮是否被选中。
- Text属性:单选按钮显示的文本。
8.图像框控件(PictureBox):- Image属性:设置图像框中显示的图像。
- SizeMode属性:设置图像显示的方式(自适应、拉伸等)。
9.进度条控件(ProgressBar):- Value属性:设置或获取进度条的当前值。
- Maximum属性:设置进度条的最大值。
- Minimum属性:设置进度条的最小值。
10.日期选择框控件(DateTimePicker):- Value属性:设置或获取选择的日期时间值。
vba controls 方法

vba controls 方法VBA Controls 方法是用于处理用户界面控件的方法集合。
VBA(Visual Basicfor Applications)是一种编程语言,用于自定义 Microsoft Office 应用程序的功能。
Controls 方法允许开发人员在 VBA 编程中操作和控制用户界面控件。
以下是一些常用的 VBA Controls 方法:1. Add 方法:此方法允许开发人员动态创建新的控件。
使用 Add 方法,您可以指定控件的类型、名称、位置和其他属性。
例如,您可以使用 Add 方法在窗体上添加一个新的按钮控件。
2. Remove 方法:此方法用于从用户界面中移除一个控件。
使用Remove 方法,您可以根据名称或索引号删除特定的控件。
例如,您可以使用 Remove 方法从表单中删除一个文本框控件。
3. Hide 和 Show 方法:Hide 方法用于隐藏控件,使其在用户界面中不可见。
Show 方法与之相反,用于显示已隐藏的控件。
您可以在运行时根据需要使用这两个方法来隐藏或显示特定的控件。
4. Enabled 方法:此方法用于启用或禁用控件。
通过将 Enabled 属性设置为True 或 False,您可以控制控件的可用性。
例如,您可以使用 Enabled 方法禁用一个按钮,以防止用户点击它。
5. AddItem 和 RemoveItem 方法:这两个方法用于操作包含项目列表的控件,例如组合框或列表框。
AddItem 方法允许向列表中添加新的项目,而 RemoveItem方法允许从列表中移除特定的项目。
VBA Controls 方法为开发人员提供了处理用户界面控件的灵活性和控制能力。
通过使用这些方法,您可以动态地创建、删除、隐藏或显示控件,并根据需要启用或禁用它们。
这些方法对于创建交互式的、可自定义的用户界面非常有用,可以让您的 VBA 应用程序更加强大和易于使用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 ,窗体上刚出现的新的文本框就被删除。
需要注意的是:Load 命令创建的控件Text1(1) 与设计时已经放在窗体上的控件Text1(0) 有完全相同的属性,也包括大小和位置等属性,例外的就是Index 属性不一样,Visible 属性默认为False, 所以必须在Load 方法执行之后,执行调整控件位置的语句[yu ju],并把其Visible 属性设置为True ,以便在窗体上可见。
Unload 命令只能删除动态加载的控件,若删除设计时创建的控件会产生错误[cuo wu]。
另外,利用上面提到的数组的一些方法,可以有效的简化代码的编写。
以下的代码可以删除所有动态创建的Text1 控件数组中的控件: Do WhileText1.Count>1Unload Text1(Text1.Ubound)Loop需要说明[shuo ming]的是,菜单数组是控件数组的一种特殊的形式,只是它是在菜单编辑器[bian ji qi]中设置相应的Name 和Index 属性,而且要求一个菜单控件数组中的菜单项必须是同一级菜单,但是不能创建新的顶级菜单。
而动态创建和删除菜单项的方法也使用Load 和Unload 方法,只是默认情况下其Visible 属性是True, 而且不用重新设置相应的位置。
3. 基于控件集合的动态控件的创建与删除VB 中提供一个Controls 集合,用以包含当前窗体中的所有的控件,这对于实现一些功能相对复杂的操作相当有好处。
而且Controls 集合也是集合的一种,它支持一般集合的Count 等方法和相应的检索[jian suo]机制[ji zhi]。
以下两例就是利用这个控件集合的巧妙实现。
要清空当前窗体上的所有的文本框,可以如下实现:Dim Ctl as ControlFor Each Ctl in ControlsIf Typeof Ctl is Textbox thenCtl.Text= ””EndifNext Ctl也可以利用集合的Count 方法如下实现:For i=0 To Controls.Count-1If Typeof Ctl is TextBoxControls(i).Text= ””EndifNext i当然,控件集合毕竟是一种特殊的集合,下面给出利用Add 方法动态添加控件,Remove 方法动态删除控件的一般方法:(1)Controls 集合的Add 方法其语法[yu fa]格式为:Set mycontrol =controld.Add(ProgId, Name, [Container])在这里,mycontrol 是一个自定义的控件对象,若需要新创建的控件对事件做出反应,还要再定义该对象时增加WithEvents 关键字ProgId 是库名. 控件名形式的控件类的名字,ToolBox 中的控件一般具有类似于mandButton 这样的形式。
而Active X 控件的形式则有所差别,比如若使用Windowless 控件库中的控件一般具有类似于MsWless.WlText 的形式。
Name 参数是想赋给控件的名字,与控件的Name 属性相对应。
Container 参数是可选的,它代表欲放置控件的容器,默认情况下是放置在窗体上。
下例是在窗体上动态创建一个命令按钮,然后单击命令按钮时,执行相应的动作:Dim WithEvents mycontrol As CommandButtonPrivate SubForm_Load()Set mycontrol =Controls.Add("mandbutton","mycontrol")mycontrol.Left = 0mycontrol.Caption = "my"mycontrol.Visible = TrueEnd SubPrivate Submycontrol_click()MsgBox "You click me!", vbExclamationEnd Sub需要注意,动态创建的控件必须指定相应的属性,而且在默认情况下,其Visible 属性是False 。
(2)Controls 集合的Remove 方法利用Controls 集合的Remove 方法可以删除用Add 方法动态创建的控件。
其语法[yu fa]格式为:Controls.Remove “控件名”比如以上创建的mycontrol 要删除可以使用如下的命令:Controls.Remove "mycontrol"同样应该注意,不能删除一个不存在或者在设计时创建的控件。
4. Active X 控件的动态创建和删除以上论述的方法适合于控件在应用程序[ying yong cheng xu]工具箱(TOOLBOX )中的情况,而ActiveX 控件一般在应用程序[ying yong cheng xu]运行机器上,但没有在工具箱中,这种情况则需要先进行注册,方法是利用Regsvr32 在Windows 环境中注册,或者在VB 代码中进行注册,方法如下:Shell(Systempath &“regsvr32.exe /s /I" &MyControlName, vbHide) 其中Systempath 是Regsvr32.exe 所在的路径,MyControlName 是控件名字(包括路径)若要撤销,可以如下操作:Shell(Systempath &“regsvr32.exe /s /U" &MyControlName, vbHide) 下面讨论注册但是未出现在工具箱(TOOLBOX )中的Active X 控件的情况,这其中也包括VB 自带的一些Active X 控件的使用。
具体的方法就是利用VBControlExtender 对象。
VBControlExtender 对象与EventInfo 相结合能提供事件陷井捕捉,它提供了一套通用的属性、方法、事件给开发人员,它的一个突出特点是能编程设计控件的事件,声明时若使用WithEvents 关键字,则会有个特殊的事件ObjectEvent(Info As EventInfo) ,它能捕捉到对象使用RaiseEvent 产生的所有事件,EventInfo 数据结构[jie gou][shu ju jie gou]映射[ying she]了事件的名称、参数个数和参数的值。
VBControlExtender 和EventInfo 相结合,采用Select Case 就可以预先将不同类对象的事件放置一起,各自独立[du li]运作。
下面的例子是使用未在工具箱(TOOLBOX )中出现的RichTextBox 的方法,其他的Active X 控件的使用方法与此类似:Dim WithEvents myControl As VBControlExtenderPrivate SubForm_Load()Licenses.Add "RichText.RichTextctrl.1"Set myControl = Controls.Add("RichText.RichTextctrl.1", "mycontrol")myControl.Left = 0myControl.Visible = TrueEnd SubPrivate Sub myControl_ObjectEvent(Info AsEventInfo)Select Case Case "MouseDown"MsgBox "mousedown"Case Else‘其他事件End SelectEnd Sub需要注意,Licenses.Add "RichText.RichTextctrl.1" 是响应[xiang ying]控件的对象编号在VB 中的注册,若此控件已经出现在工具箱(TOOLBOX )中,则会出错。
另外,若Active X 控件已经出现在TOOLBOX 中,需要动态建立控件,则应该作如下的处理:首先去掉Licenses.Add"RichText.RichTextctrl.1" 这一句,然后,在“工程属性窗口[chuang kou]”的“Make ”页面下,确保[que bao]“remove information about unused ActiveX controls ”不被选中即可。
还有,若Active X 控件已经出现在TOOLBOX 中,需要动态建立控件,还可以用类似于前面介绍的控件集合的方法,比如上面示范的RichTextBox 的例子还可以如下实现(只是这种方法不再支持ObjectEvent 事件):Dim WithEvents myControl As RichTextLib.RichTextBoxPrivate SubForm_Load()Set myControl =Controls.Add("RichText.RichTextctrl.1","mycontrol")myControl.Left = 0myControl.Visible = TrueEnd SubPrivate Sub myControl_Click()MsgBox "click"End Sub5. 结束语通过以上对Visual Basic 中的控件动态建立和删除进行了讨论,我们了解到控件数组适合于应用程序[ying yong cheng xu]中需要该控件,但需要控件实例的具体数量不定的情况;而控件集合则适合于为了完成不同的任务[ren wu],制作了多个不同功能的控件,在特定条件[tiao jian]下只需要一个或几个控件的情况对于Active X 控件,若没有添加到VB 工具箱中,当应用程序[ying yong cheng xu]执行时,可以根据需要由程序自动加载或者删除。