关于动态增加(M行N列个)控件。
现在想动态增加控件, 一共生成(M行N列个)控件,N都是可变值
先在窗体上放一个Label1控件,设置它的Index属性为0
然后
Private Sub Command1_Click()
Load Label1(1)
Load Label1(2)
......
Load Label1(M)
End Sub
这样能生成一行或者一列
可是生成(M行N列),如何处理,并且Index可以方便的进行(行列)循环
谢谢了
问题点数:100、回复次数:6Top
1 楼tztz520(午夜逛街)回复于 2006-03-16 11:14:15 得分 50
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim m As Integer, n As Integer
Dim nTop As Integer
Dim nLeft As Integer
Dim cIndex As Integer
nLeft = 0
nTop = 0
m = 8 '行
n = 7 '列
For i = 1 To m
nTop = 0
For j = 1 To n
cIndex = i * n + j - n
Load Label1(cIndex)
Label1(cIndex).Move nLeft, nTop
nTop = nTop + Label1(0).Height + 30
Label1(cIndex).Visible = True
Label1(cIndex).Caption = "控件" & cIndex
Next j
nLeft = nLeft + Label1(0).Width + 50
Next i
End SubTop
2 楼tztz520(午夜逛街)回复于 2006-03-16 11:28:45 得分 0
'横排
Private Sub Command1_Click()
Dim i As Integer, j As Integer
Dim m As Integer, n As Integer
Dim nTop As Integer
Dim nLeft As Integer
Dim cIndex As Integer
nLeft = 0
nTop = 0
m = 8 '列
n = 7 '行
For i = 1 To n
nLeft = 0
For j = 1 To m
cIndex = i * m + j - m
Load Label1(cIndex)
Label1(cIndex).Move nLeft, nTop
nLeft = nLeft + Label1(0).Width + 50
Label1(cIndex).Visible = True
Label1(cIndex).Caption = "控件" & cIndex
Next j
nTop = nTop + Label1(0).Height + 30
Next i
End SubTop
3 楼AnnaBear(淡淡)回复于 2006-03-16 11:42:39 得分 5
tztz520(午夜逛街)//
厉害
我学会了
谢谢^_^Top
4 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 11:44:34 得分 45
Dim myImg() As Image
Private Const M = 5 '行
Private Const N = 4 '列
Private Const ctlWidth = 1000
Private Const ctlHeight = 375
Private Sub Command1_Click()
ReDim myImg(1 To M * N)
Dim i%
For i = 1 To M * N
Set myImg(i) = Form1.Controls.Add("vb.Image", "img" & i & "")
myImg(i).Width = ctlWidth: myImg(i).Height = ctlHeight
myImg(i).Left = 100 + ctlWidth * (i Mod N) ' lTmp
myImg(i).Top = 40 + ctlHeight * (i Mod M)
myImg(i).Visible = True
myImg(i).BorderStyle = 1
Next
End SubTop
5 楼faysky2(出来混,迟早是要还嘀)回复于 2006-03-16 11:45:41 得分 0
Dim myImg() As Image
Private Const M = 5 '行
Private Const N = 4 '列
Private Const ctlWidth = 1000 '宽
Private Const ctlHeight = 375 '高
Private Sub Command1_Click()
ReDim myImg(1 To M * N)
Dim i%
For i = 1 To M * N
Set myImg(i) = Form1.Controls.Add("vb.Image", "img" & i & "")
myImg(i).Width = ctlWidth: myImg(i).Height = ctlHeight
myImg(i).Left = 100 + ctlWidth * (i Mod N)
myImg(i).Top = 40 + ctlHeight * (i Mod M)
myImg(i).Visible = True
myImg(i).BorderStyle = 1
Next
End Sub
Top
6 楼tutuxu(tutuxu)回复于 2006-03-16 13:18:04 得分 0
谢谢!
Top




