
object.Add
(ProgID,
name,
container)
参数说明
Object
必需的。一个对象表达式,其值是“应用于”列表中的一个对象。
ProgID
必需的。一个标识控件的字符串。大多数控件的
ProgID
都可通过查看对象浏览器来决定。控件的
ProgID
是由控件的库和类组成的。
例如,CommandButton
控件的
ProgID
是
VB.CommandButton。在ProgID
与对象浏览器中所显示的不一样的情况下,Visual
Basic
将显示一个包括正确
ProgId
的错误信息。
name
必要的。一个字符串,用来标识集合的成员。
container
可选的。一个对象引用,它指定控件的容器。如果没有指定或为NULL,缺省值为
Controls
集合所属的容器。通过指定该参数,可以把一个控件放置在任何现存的容器控件(如
Frame
控件)中。用户控件或
ActiveX
文档也可以作为一个容器。
举例:
//在picture1上面添加一个commandbutton
Private
Sub
Form_Load()
Form1.Controls.Add
"VB.CommandButton",
"cmdOk",
Picture1
With
Form1.cmdOk
.Visible
=
True
.Width
=
500
.Caption
=
"确认(&Y)"
End
With
End
Sub
当然,我个人觉得更好的办法还是用控件数组,例如现在首先建立一个TextBox控件,并把Index属性改成0(注意,原来是空的,必须写上0)。
然后在程序中任意地方,采用例如Load
TextBox1(1)就可以创建一个新的TextBox对象,通过TextBox1(1)访问。
当然你可以用循环创建指定数量的文本框,在不用的时候记得用
Unload
TextBox1(1)给他注销掉。
其实也不是很难,给你一个框架,作为参考吧。
具体的也只有你自己进行完善。
' 先在窗体上添加一个标准按钮' 在属性窗口中,把它的 Index属性设置成 0
' 名称改为 cmdDynCmd (其它的名称也行,注意后面的说明)
' Visible 可以设置成 False
Option Explicit
Private lCmdIndex As Long
Private Sub LoadCmdButton()
'这儿就是加载动态按钮的
Dim i&
For i = 0 To NNN '这儿NNN等于你需要的按钮数减1,可以用变量的
'你应该能通过你的“数据库中"a"表中"名称"字段”项目数 来确定值为多少
' *** 注意这儿的 cmdDynCmd 就是设计时确定的按键名称 ***
If (lCmdIndex > 0) Then Load cmdDynCmd(i)
cmdDynCmd(i).Visible = True
'这儿的 Caption 属性,你自己用代码跟你的 数据库中"a"表中"名称"字段内容关联
cmdDynCmd(i).Caption = "动态按钮" & i + 1
'这儿的 x 、y 你可以根据 i 的值来进行计算
cmdDynCmd(i).Top = X
cmdDynCmd(i).Left = Y
'直接 cmdDynCmd(i).move x, y也行
Next
End Sub
' 这儿就是动态按钮的事件代码
' 根据 Index 判断是哪个按钮触发了事件
' 跟你事先设计好的控件数组完全是相同的用法
' ***** 注意!!!注意这儿的 cmdDynCmd 就是设计时确定的按键名称
Private Sub cmdDynCmd_Click(Index As Integer)
MsgBox "你点击的是第 " & Index + 1 & " 个动态按钮。", 64
'具体事件代码只能你自己写
End Sub
思路
两种方式:
1、通过动态按钮方式创建,
2:通过控件数组方式创建。
个人倾向于通过控件数组的方式。一般应用都是有规律的创建的,所以用控件数组合适些。
举例
' 先在窗体上添加一个标准按钮' 在属性窗口中,把它的 Index属性设置成 0
' 名称改为 cmdDynCmd (其它的名称也行,注意后面的说明)
' Visible 可以设置成 False
Option Explicit
Private lCmdIndex As Long
Private Sub LoadCmdButton()
'这儿就是加载动态按钮的
Dim i&
For i = 0 To NNN '这儿NNN等于你需要的按钮数减1,可以用变量的
'你应该能通过你的“数据库中"a"表中"名称"字段”项目数 来确定值为多少
' *** 注意这儿的 cmdDynCmd 就是设计时确定的按键名称 ***
If (lCmdIndex > 0) Then Load cmdDynCmd(i)
cmdDynCmd(i).Visible = True
'这儿的 Caption 属性,你自己用代码跟你的 数据库中"a"表中"名称"字段内容关联
cmdDynCmd(i).Caption = "动态按钮" & i + 1
'这儿的 x 、y 你可以根据 i 的值来进行计算
cmdDynCmd(i).Top = X
cmdDynCmd(i).Left = Y
'直接 cmdDynCmd(i).move x, y也行
next
End Sub
' 这儿就是动态按钮的事件代码
' 根据 Index 判断是哪个按钮触发了事件
' 跟你事先设计好的控件数组完全是相同的用法
' ***** 注意!!!注意这儿的 cmdDynCmd 就是设计时确定的按键名称
Private Sub cmdDynCmd_Click(Index As Integer)
MsgBox "你点击的是第 " & Index + 1 & " 个动态按钮。", 64
'具体事件代码只能你自己写
End Sub
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)