📄 如何在程序中动态加入控件数组.txt
字号:
无 法 采 用 你 说 的 办 法 定 义 动 态 控 件 数 组 。 一 种 办 法 可 以 参 考 “如何在VB程序运行时加入和删除控件”, 另 一 种 办 法 是 可 以 借 助 VBControlExtender来 实 现 这 种 效 果 。 下 面 是 一 个 例 子 :
Option Explicit
' 如 果 你 要 添 加 一 个 在 你 的 工 程 文 件 中
' 没 有 用 到 的 ActiveX控 件 , 你 需 要 声 明 它 为
' VBControlExtender.
Dim WithEvents ctlDynamic As VBControlExtender
Dim WithEvents ctlText As VB.TextBox
Dim WithEvents ctlCommand As VB.CommandButton
Private Sub ctlCommand_Click()
ctlText.Text = "你 点 击 了 命 令 按 钮 "
End Sub
Private Sub ctlDynamic_ObjectEvent(Info As EventInfo)
' 测 试 TreeView控 件 的 Click事 件
If Info.Name = "Click" Then
ctlText.Text = "你 点 击 了 " _
& ctlDynamic.object.selecteditem.Text
End If
End Sub
Private Sub Form_Load()
Dim i As Integer
' 添 加 TreeView的 许 可 信 息 license集 合
' 如 果 license集 合 已 经 包 括 了 许 可 信 息 ,
' 你 将 得 到 运 行 错 误 732
Licenses.Add "MSComctlLib.TreeCtrl"
' 动 态 增 加 TreeView控 件 到 窗 体 。
' 如 果 你 希 望 增 加 控 件 到 其 它 的 容 器 ,
' 如 Frame或 PictureBox, 你 可 以 使 用
' Controls.Add的 第 3个 参 数 指 定 容 器 程 序 。
Set ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", _
"myctl", Form1)
' 设 置 控 制 的 位 置 和 大 小
ctlDynamic.Move 1, 1, 2500, 3500
' 添 加 一 些 节 点 到 TreeView控 件
For i = 1 To 10
ctlDynamic.object.nodes.Add Key:="Test" & Str(i), Text:="Test" _
& Str(i)
ctlDynamic.object.nodes.Add Relative:="Test" & Str(i), _
Relationship:=4, Text:="TestChild" & Str(i)
Next i
' 显 示 控 件
ctlDynamic.Visible = True
' 添 加 textbox
Set ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)
' 设 置 textbox的 位 置 和 大 小
ctlText.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
1, 2500, 100
' 改 变 背 景 色
ctlText.BackColor = vbYellow
' 显 示 控 件
ctlText.Visible = True
' 添 加 按 钮
Set ctlCommand = Controls.Add("VB.CommandButton", _
"ctlCommand1", Form1)
' 设 置 CommandButton的 位 置 和 大 小
ctlCommand.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _
ctlText.Height + 50, 1500, 500
' 设 置 标 题
ctlCommand.Caption = "Click Me"
' 显 示 控 件
ctlCommand.Visible = True
End Sub
<END>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -