100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 在VB中动态添加可响应消息的控件

在VB中动态添加可响应消息的控件

时间:2023-08-01 19:19:28

相关推荐

在VB中动态添加可响应消息的控件

想不想get新技能酷炫一下,今天小编就跟大家分享个简单的在VB中动态添加可响应消息的控件教程,一起来看看吧!超容易上手~

在VB编程中,经常要根据不同的情况在运行时向窗口中添加或者删除控件,而各个控件还要响应各种事件。在一般的情况下是首先在设计时将控件加入到窗口中,在它们的各个事件中写入代码,然后将它们的Visible属性设置为False。在运行时再使控件显示出来,但是这样既不方便同时也因为在设计时在窗口中加入太多的控件而使得程序的运行速度变慢。下面我向大家介绍一种通过编程在运行时动态添加和删除控件的方法

首先建立一个工程文件,然后在Form1中加入以下的代码:

vb;">Dim WithEvents cmdMyCommand As Explicit'在下面的定义中,程序定义了一个TextBox控件、一个CommandButton控件'和一个附加控件。Dim WithEvents ctlDynamic As VBControlExtenderDim WithEvents ctlText As WithEvents ctlCommand As WithEvents ctlCommandDel As Sub ctlCommandDel_Click()Dim i As Integer'将控件的许可证信息删除 "& MsgBox("是否删除所有控件", vbYesNo) = vbYes ThenFor i = 1 To 0Next iEnd IfEnd SubPrivate Sub ctlCommand_Click() = "你点击的是控制按钮"End SubPrivate Sub ctlDynamic_ObjectEvent(Info As EventInfo)'当点击树形控件的某一个条目后,在ctlText中显示条目。If = "Click" Then = "你点击的条目是 " & IfEnd SubPrivate Sub Form_Load()Dim i As Integer' 将树形控件的许可证信息加入到许可证集合中' 如果许可证已经存在,则会返回错误信息732Licenses.Add "&&#; 在Form中动态的加入一个树形控件,如果你想树形控件建立到不同的'容器中,象一个Frame控件或者PictureBox控件,你只要将&#函数的第三个参数改为特定的容器名就可以了 ctlDynamic = Controls.Add("MSComctlLib.TreeCtrl", _"myctl", Form1)'设置树形控件的位置和尺寸ctlDynamic.Move 1, 1, 2500, 3500'在树形控件中加入10个节点For i = 1 To 10ctlDynamic.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'加入一个TextBoxSet ctlText = Controls.Add("VB.TextBox", "ctlText1", Form1)'设置TextBox的位置和尺寸ctlText.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _1, 2500, 100'将textBox的背景色设置为蓝色并将前景色设置为白色ctlText.BackColor = vbBluectlText.ForeColor = vbWhite'使TextBox可见ctlText.Visible = True'加入一个CommandButtonSet ctlCommand = Controls.Add("mandButton", _"ctlCommand1", Form1)'设置CommandButton的位置和尺寸ctlCommand.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _ctlText.Height + 50, 1500, 500'设置CommandButton的标题ctlCommand.Caption = "点击"'使CommandButton可见ctlCommand.Visible = True'建立一个删除按钮Set ctlCommandDel = Controls.Add("mandButton", _"ctlCommand2", Form1)ctlCommandDel.Move (ctlDynamic.Left + ctlDynamic.Width + 50), _ctlText.Height + 650, 1500, 500ctlCommandDel.Caption = "删除所有控件"ctlCommandDel.Visible = TrueEnd Sub

运行上面的程序,可以看到程序在窗口中加入了三个VB标准控件:一个TextBox和两个CommandButton还加入了一个扩展的ActiveX控件:树形控件。这些控件还可以响应消息, 点击树形控件中的项目或者点击按钮就可以在文本框中显示相应的内容。点击删除 所有控件按钮就可以删除加入的所有控件了。

通过上面的程序可以看到,通过WithEvents可以定义带事件相应的控件,对于标准的VB控件(例如CommandButton、TextBox等)可以通过VB.XXX来定义,其中XXX是控件的类的名称 ,而对于扩展的ActiveX控件,可以通过VBControlExtender来定义,在装载扩展控件以前, 首先要使用Licenses对象加入控件的许可证信息。

上面的程序在VB6,WIN98中文版下运行通过。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。