關於在VB中動態載入控制元件的方法
阿新 • • 發佈:2019-02-19
動態載入控制元件,有諸多好處,
以前以為,只有在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檔案註冊一下就好了。