-
vb教程之用VB6实现动态增减控件
用过Internet Explorer收藏夹的朋友都知道,利用鼠标单击时收藏夹会出现,再次单击则收藏夹消失。从编程角度讲,这是个在程序运行阶段动态增减控件的问题。以前,这仅仅是C++之类编程语言的专利。如今,微软在Visual Basic6.0中也新增了这个功能,下面就此举例进行介绍:
1.新建一个工程,窗体Form1为缺省窗体,Form1的属性项Caption=″动态增减控件的例子″。
2.加入两个命令按钮(CommandButton),其中:
Command1的属性项Caption=″增加控件″;
Command2的属性项Caption=″删除控件″。
3.加入如下代码,运行该工程,单击″增加控件″则出现新增按钮。若单击″新增按钮″时会出现对话框,表明你触发的是动态增加控件的单击事件。
Option Explicit
′通过使用WithEvents关键字声明一个对象变量为新的命令按钮
Private WithEvents NewButton As CommandButton
′增加控件
Private Sub Command1_Click()
If NewButton Is Nothing Then
′增加新的按钮cmdNew
Set NewButton =Controls.Add(″VB.CommandButton″,″cmdNew″, Me)
′确定新增按钮cmdNew的位置
NewButton.Move Command1.Left+Command1.Width+240, Command1.Top
NewButton.Caption =″新增的按钮″
NewButton.Visible = True
End If
End Sub
′删除控件(注:只能删除动态增加的控件)
Private Sub Command2_Click()
If NewButton Is Nothing Then
Else
Controls.Remove NewButton
Set NewButton = Nothing
End If
End Sub
′新增控件的单击事件
Private Sub NewButton_Click()
MsgBox″您选中的是动态增加的按钮!″
End Sub
注意:如果你希望添加一个用户控件或任何ActiveX控件到您的窗体,必须把这个控件添加到“工具箱”,或者把控件的License关键字添加到Licenses集合中。而且,你不能选定“工程属性”对话框的“生成”选项卡上的“删除有关未使用的ActiveX控件”选项,否则controls.Add方法将失败,因为必需的信息已经被丢失。
1.新建一个工程,窗体Form1为缺省窗体,Form1的属性项Caption=″动态增减控件的例子″。
2.加入两个命令按钮(CommandButton),其中:
Command1的属性项Caption=″增加控件″;
Command2的属性项Caption=″删除控件″。
3.加入如下代码,运行该工程,单击″增加控件″则出现新增按钮。若单击″新增按钮″时会出现对话框,表明你触发的是动态增加控件的单击事件。
Option Explicit
′通过使用WithEvents关键字声明一个对象变量为新的命令按钮
Private WithEvents NewButton As CommandButton
′增加控件
Private Sub Command1_Click()
If NewButton Is Nothing Then
′增加新的按钮cmdNew
Set NewButton =Controls.Add(″VB.CommandButton″,″cmdNew″, Me)
′确定新增按钮cmdNew的位置
NewButton.Move Command1.Left+Command1.Width+240, Command1.Top
NewButton.Caption =″新增的按钮″
NewButton.Visible = True
End If
End Sub
′删除控件(注:只能删除动态增加的控件)
Private Sub Command2_Click()
If NewButton Is Nothing Then
Else
Controls.Remove NewButton
Set NewButton = Nothing
End If
End Sub
′新增控件的单击事件
Private Sub NewButton_Click()
MsgBox″您选中的是动态增加的按钮!″
End Sub
注意:如果你希望添加一个用户控件或任何ActiveX控件到您的窗体,必须把这个控件添加到“工具箱”,或者把控件的License关键字添加到Licenses集合中。而且,你不能选定“工程属性”对话框的“生成”选项卡上的“删除有关未使用的ActiveX控件”选项,否则controls.Add方法将失败,因为必需的信息已经被丢失。
最新更新
求1000阶乘的结果末尾有多少个0
详解MyBatis延迟加载是如何实现的
IDEA 控制台中文乱码4种解决方案
SpringBoot中版本兼容性处理的实现示例
Spring的IOC解决程序耦合的实现
详解Spring多数据源如何切换
Java报错:UnsupportedOperationException in Col
使用Spring Batch实现批处理任务的详细教程
java中怎么将多个音频文件拼接合成一个
SpringBoot整合ES多个精确值查询 terms功能实
数据库审计与智能监控:从日志分析到异
SQL Server 中的数据类型隐式转换问题
SQL Server中T-SQL 数据类型转换详解
sqlserver 数据类型转换小实验
SQL Server数据类型转换方法
SQL Server 2017无法连接到服务器的问题解决
SQLServer地址搜索性能优化
Sql Server查询性能优化之不可小觑的书签查
SQL Server数据库的高性能优化经验总结
SQL SERVER性能优化综述(很好的总结,不要错
uniapp/H5 获取手机桌面壁纸 (静态壁纸)
[前端] DNS解析与优化
为什么在js中需要添加addEventListener()?
JS模块化系统
js通过Object.defineProperty() 定义和控制对象
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比