动态加载控件,有诸多好处,
以前以为,只有在VC中才能动态加载控件,而在VB中,只能定义一个数组,然后采用Load方式加载。近日编码,才发现,原来VB中也可以方便的动态加载。
举例子总结一下,免得以后到处查:
1:动态加载VB固有的控件。
如:加载一个文本框
Controls.Add "VB.TextBox", "txtDynamic", Me
With Me!txtDynamic
.Visible = True
.Width = 2000
.Text = "0"
End With
2:如何绑定事件呢?
Private WithEvents txtTest As TextBox
Set txtTest = Me!txtDynamic
Private Sub txtTest_KeyPress(KeyAscii As Integer)
End Sub
3:动态加载自定义控件。注意,一定需要License。
Licenses.Add "Project2.UserControl1", "kaghfadhghlaahnhigaaohaaogjgmaehoanb"
Set ctlExtender = Controls.Add("Project2.UserControl1", "MyControl")
With ctlExtender
.Visible = True
.Top = 1000
.Left = 1000
End With
4:那么,自定义控件如何生成License?
1:工程属性页>>General Require license key 勾上。
2: 打开生成的VBL文件,第二行中有Key。一看便知。
5:如何绑定自定义控件的事件呢?
Private WithEvents ctlExtender As VBControlExtender
Private Sub ctlExtender_ObjectEvent(Info As EventInfo)
Debug.Print Info.Name
End Sub
嗯,参数怎么取?
如:自定义控件的事件为:
Public Event EditChange(ByVal Param1 As String)
取参数就是:
Info.EventParameters("Param1")
6:对了,有License的自定义控件不动态加载,直接使用,需要License吗,如何注册?
需要。 把VBL文件当作reg文件注册一下就好了。
以前以为,只有在VC中才能动态加载控件,而在VB中,只能定义一个数组,然后采用Load方式加载。近日编码,才发现,原来VB中也可以方便的动态加载。
举例子总结一下,免得以后到处查:
1:动态加载VB固有的控件。
如:加载一个文本框
Controls.Add "VB.TextBox", "txtDynamic", Me
With Me!txtDynamic
.Visible = True
.Width = 2000
.Text = "0"
End With
2:如何绑定事件呢?
Private WithEvents txtTest As TextBox
Set txtTest = Me!txtDynamic
Private Sub txtTest_KeyPress(KeyAscii As Integer)
End Sub
3:动态加载自定义控件。注意,一定需要License。
Licenses.Add "Project2.UserControl1", "kaghfadhghlaahnhigaaohaaogjgmaehoanb"
Set ctlExtender = Controls.Add("Project2.UserControl1", "MyControl")
With ctlExtender
.Visible = True
.Top = 1000
.Left = 1000
End With
4:那么,自定义控件如何生成License?
1:工程属性页>>General Require license key 勾上。
2: 打开生成的VBL文件,第二行中有Key。一看便知。
5:如何绑定自定义控件的事件呢?
Private WithEvents ctlExtender As VBControlExtender
Private Sub ctlExtender_ObjectEvent(Info As EventInfo)
Debug.Print Info.Name
End Sub
嗯,参数怎么取?
如:自定义控件的事件为:
Public Event EditChange(ByVal Param1 As String)
取参数就是:
Info.EventParameters("Param1")
6:对了,有License的自定义控件不动态加载,直接使用,需要License吗,如何注册?
需要。 把VBL文件当作reg文件注册一下就好了。