你在frame里放一个picturebox,然后在这个picturebox上放一个按钮,index为0 然后 Private Sub Form_Load() Dim i As Integer i = 50 For i = 1 To 50 Load Command1(i) Command1(i).Left = Command1(i - 1).Left Command1(i).Top = Command1(i - 1).Top + Command1(i - 1).Height Command1(i).Visible = True Next End Sub 就动态加载了,随着加载控件在,修改picturebox的高度,一共picturebox需要一个滚动条,改变picturebox的top值来达到移动要将按钮的style属性改为1,你修改的背景颜色才有效,style=0和等于1其实是两个类
ch21st(风尘鸟.shannon) 能不能把滚动条的那个控制代码给我贴上来,谢谢!
清除刚刚添加的按钮 Private Function ClearObj() Dim obj As Control For Each obj In Me.Controls If ((UCase(TypeName(obj)) = "COMMANDBUTTON") And (UCase(obj.Container.Name) = UCase("Picture1"))) Then If obj.Index > 0 Then Unload obj End If Next Command1(0).Visible = False End Function因为Command1(0)是设计时添加的,所以不能unload,将它隐藏了
Private ScrollOldValue As LongPrivate Sub Command2_Click() ClearObj End SubPrivate Sub Form_Load() Dim i As Integer i = 50 For i = 1 To 50 Load Command1(i) Command1(i).Left = Command1(i - 1).Left Command1(i).Top = Command1(i - 1).Top + Command1(i - 1).Height Command1(i).Visible = True Command1(i).Caption = i Next Me.ScaleMode = 1 Picture1.Height = Command1(i - 1).Top + Command1(i - 1).Height + 100 VScroll1.Min = 0 VScroll1.Max = Picture1.Height VScroll1.Value = 0 Picture1.Top = 240 End SubPrivate Function ClearObj() Dim obj As Control For Each obj In Me.Controls If ((UCase(TypeName(obj)) = "COMMANDBUTTON") And (UCase(obj.Container.Name) = UCase("Picture1"))) Then If obj.Index > 0 Then Unload obj End If Next Command1(0).Visible = False End FunctionPrivate Sub Form_Resize() Picture2.Move 100, 240, Frame1.Width - 200, Frame1.Height - 360 End SubPrivate Sub VScroll1_Scroll() Picture1.Top = Picture1.Top + (ScrollOldValue - VScroll1.Value) ScrollOldValue = VScroll1.Value End Subpicture2在frame1中是picture1的容器,否则对于移动picture1会挡住frame1的边框线和标题就不好看了 滚动条的代码只是示例,你可以自己思考后重写
然后
Private Sub Form_Load()
Dim i As Integer
i = 50
For i = 1 To 50
Load Command1(i)
Command1(i).Left = Command1(i - 1).Left
Command1(i).Top = Command1(i - 1).Top + Command1(i - 1).Height
Command1(i).Visible = True
Next
End Sub
就动态加载了,随着加载控件在,修改picturebox的高度,一共picturebox需要一个滚动条,改变picturebox的top值来达到移动要将按钮的style属性改为1,你修改的背景颜色才有效,style=0和等于1其实是两个类
Private Function ClearObj()
Dim obj As Control
For Each obj In Me.Controls
If ((UCase(TypeName(obj)) = "COMMANDBUTTON") And (UCase(obj.Container.Name) = UCase("Picture1"))) Then
If obj.Index > 0 Then Unload obj
End If
Next
Command1(0).Visible = False
End Function因为Command1(0)是设计时添加的,所以不能unload,将它隐藏了
ClearObj
End SubPrivate Sub Form_Load()
Dim i As Integer
i = 50
For i = 1 To 50
Load Command1(i)
Command1(i).Left = Command1(i - 1).Left
Command1(i).Top = Command1(i - 1).Top + Command1(i - 1).Height
Command1(i).Visible = True
Command1(i).Caption = i
Next
Me.ScaleMode = 1
Picture1.Height = Command1(i - 1).Top + Command1(i - 1).Height + 100
VScroll1.Min = 0
VScroll1.Max = Picture1.Height
VScroll1.Value = 0
Picture1.Top = 240
End SubPrivate Function ClearObj()
Dim obj As Control
For Each obj In Me.Controls
If ((UCase(TypeName(obj)) = "COMMANDBUTTON") And (UCase(obj.Container.Name) = UCase("Picture1"))) Then
If obj.Index > 0 Then Unload obj
End If
Next
Command1(0).Visible = False
End FunctionPrivate Sub Form_Resize()
Picture2.Move 100, 240, Frame1.Width - 200, Frame1.Height - 360
End SubPrivate Sub VScroll1_Scroll()
Picture1.Top = Picture1.Top + (ScrollOldValue - VScroll1.Value)
ScrollOldValue = VScroll1.Value
End Subpicture2在frame1中是picture1的容器,否则对于移动picture1会挡住frame1的边框线和标题就不好看了
滚动条的代码只是示例,你可以自己思考后重写
就是在picture1中动态生成若干按钮,我已经排列好了,现在就是如果让这么多的
按钮在frame中的picture中滚动显示?