VB如何点击command就自动添加一个label控件

如题,在vb中单击command,然后可以自动在label1控件数组中添加一个label控件。急啊!求高人解答。给出详细代码。

根据我的判断。前面两个应该是错的。是创建、而不是显示已有的。
有两种方法,以下代码是简便的一种:
'(创建一个按钮即可运行)

Private hTimes As Long '这里是创建了几个Label的计数器

Private Sub Command1_Click()
Dim ExLabel As Label
hTimes = hTimes + 1
Set ExLabel = Me.Controls.Add("VB.Label", "label" & LTrim(Str(hTimes)))
With ExLabel '标准的几个属性,可以根据需要更改
.Width = 2415
.Height = 255
.Left = 0
.Top = hTimes * .Height '方位长度
.Caption = "hello world" '显示的文字
.Visible = True '显示的属性
End With
End Sub

如还有疑问,请追问。
答案系原创
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-08-27
两种方法:

一. 在command1点击事件中加入语句: if text1.text="now()" then label1.caption=now()

二. 在VB里点"工程"->"部件", 在"控件"选项卡里选取"Microsoft Script Control 1.0", 然后确定. 在工具箱找到ScriptControl控件, 添加到窗体中, 再添加一个TextBox, 一个Command, 一个Label. 然后加入如下代码:

Private Sub Command1_Click()
Dim s As String
s = "function RunThis()" & vbCrLf & "RunThis=" & Text1.Text & vbCrLf & "end function"
ScriptControl1.AddCode s
Label1.Caption = ScriptControl1.Run("RunThis")
End Sub

此后你可以在text1中输入任何表达式, 包括 now, time, date, 5+4-1, msgbox "Hello!", 执行结果都会在label1显示出来.
第2个回答  推荐于2016-06-25
使用load方法
Private Sub Command1_Click()
Load Label1(1)
'设置位置
Label1(1).Top = 50
Label1(1).Left = 0
'设置内容
Label1(1).Caption = "haha"
'使新的label可见(默认是不可见的)
Label1(1).Visible = True
End Sub追问

要求是控件数组,这样不是每次都添加的label1(1)吗?

追答

这只是个演示程序 数组你随便改啊 加个for循环就可以了

本回答被提问者和网友采纳
第3个回答  2011-08-26
举例如下,你可以自行完善:

Private Sub Command1_Click()
Dim nextN As Integer
nextN = Label1.UBound + 1
Load Label1(nextN)
With Label1(nextN)
.Caption = "Label1-" & nextN
.Width = Label1(0).Width
.Height = Label1(0).Height
.Left = Label1(0).Left
.Top = Label1(nextN - 1).Top + Label1(nextN - 1).Height
.Visible = True
End With
End Sub
第4个回答  2011-08-27

Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal dwRop As Long) As Long
复制前一个 label1 把 坐标随机化。

想要多少个,有多少个…想楼上那么加label控件,那我要100个,加到什么时候去了。。
相似回答