怎么在代码中动态生成控件数组? 大家好! 怎么在代码中动态生成控件数组?多谢!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 Option ExplicitDim tmpi As IntegerPrivate Sub Command1_Click(Index As Integer) On Error Resume Next Load Command1(tmpi) Command1(tmpi).Visible = True Command1(tmpi).Move Command1(tmpi - 1).Left, Command1(tmpi - 1).Top + 100 tmpi = tmpi + 1End Sub 上面的程序是基本的空间动态数组的思路,但必须注意一点,就是你要事先在窗体上放上一个index为0的控件,这样才可以象上面那样用load去加载。如果不是事先画好的话,那么首先要求这个控件有progid,象vb标准的各个控件,都是无法凭空加载的,因为他们都没有progid。所以,如果事先没有button,你不能去加载一个button,但如果事先没有一个flexgrid,你却可以动态加载一个flexgrid。具有progid的控件一般都是那种单独注册的ocx文件,包括我们自己写的自定义控件。至于如何加载,你可以在MSDN中找找相关的帮助,比如查找关键字controls.add或者licences.add。我现在手头没有代码,如果需要,晚上回家可以给你贴一段。 我试了一下, 上面这段代码没有产生一个新的控件. 我是在FORM的LOAD事件中运行这段代码的. 谢谢cryptonym(渔小鱼) , 能说明白一点吗 下面的内容保存为 aaa.frm 直接运行即可:VERSION 5.00Begin VB.Form Form1 Caption = "Form1" ClientHeight = 3090 ClientLeft = 60 ClientTop = 450 ClientWidth = 4680 LinkTopic = "Form1" ScaleHeight = 3090 ScaleWidth = 4680 StartUpPosition = 3 'Windows Default Begin VB.CommandButton Command1 Caption = "Command1" Height = 375 Index = 0 Left = 840 TabIndex = 0 Top = 240 Width = 2175 EndEndAttribute VB_Name = "Form1"Attribute VB_GlobalNameSpace = FalseAttribute VB_Creatable = FalseAttribute VB_PredeclaredId = TrueAttribute VB_Exposed = FalseOption ExplicitDim tmpi As IntegerPrivate Sub Command1_Click(Index As Integer) tmpi = tmpi + 1 Load Command1(tmpi) With Command1(tmpi) .Visible = True .Move Command1(tmpi - 1).Left, Command1(tmpi - 1).Top + .Height + 20 .Caption = tmpi End WithEnd Sub AutoCAD的Line点不重复排序 提示"case without select case" 请问vb如何调用c++编的dll文件? VB能不能调用WinXP里面的压缩功能:zipfldr.dll ? 紧急~~~~~~~~~~~~~十万火急~!!大虾们救火啊~~~~~ 合并查询结果的简单问题 哪个帮我解决一下:sql查询问题 请各位高手推荐一本数据库编程入门丛书? 如何实现pop邮件的接收阿? vb做的程序怎用installshield打包 谁有vb+mapx的资料或有关这方面的讯息 恳请各位高手帮助解决问题
Dim tmpi As IntegerPrivate Sub Command1_Click(Index As Integer)
On Error Resume Next
Load Command1(tmpi)
Command1(tmpi).Visible = True
Command1(tmpi).Move Command1(tmpi - 1).Left, Command1(tmpi - 1).Top + 100
tmpi = tmpi + 1
End Sub
如果不是事先画好的话,那么首先要求这个控件有progid,象vb标准的各个控件,都是无法凭空加载的,因为他们都没有progid。所以,如果事先没有button,你不能去加载一个button,但如果事先没有一个flexgrid,你却可以动态加载一个flexgrid。
具有progid的控件一般都是那种单独注册的ocx文件,包括我们自己写的自定义控件。至于如何加载,你可以在MSDN中找找相关的帮助,比如查找关键字controls.add或者licences.add。我现在手头没有代码,如果需要,晚上回家可以给你贴一段。
Begin VB.Form Form1
Caption = "Form1"
ClientHeight = 3090
ClientLeft = 60
ClientTop = 450
ClientWidth = 4680
LinkTopic = "Form1"
ScaleHeight = 3090
ScaleWidth = 4680
StartUpPosition = 3 'Windows Default
Begin VB.CommandButton Command1
Caption = "Command1"
Height = 375
Index = 0
Left = 840
TabIndex = 0
Top = 240
Width = 2175
End
End
Attribute VB_Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit
Dim tmpi As IntegerPrivate Sub Command1_Click(Index As Integer)
tmpi = tmpi + 1
Load Command1(tmpi)
With Command1(tmpi)
.Visible = True
.Move Command1(tmpi - 1).Left, Command1(tmpi - 1).Top + .Height + 20
.Caption = tmpi
End With
End Sub