石头记

看遍了冷冷清风吹飘雪,渐厚,鞋踏破路湿透。。。

原创 关于在VB中动态加载控件的方法收藏

动态加载控件,有诸多好处,
以前以为,只有在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文件注册一下就好了。

发表于 @ 2006年04月10日 21:51:00|评论(loading...)

新一篇: VB中String的用法及原理 | 旧一篇: 关于API的DLL的搜索顺序问题

Csdn Blog version 3.1a
Copyright © 石头