高分求助,谁能帮我写点代码,在一个frame中动态生成若干个按钮,当按钮数量较多时能用滚动条下拉,谢谢,因为要急用就不想自己研究了,谁有代码可以贴上来,因为我知道思路所以最好是直接贴可以运行的代码

解决方案 »

  1.   

    你在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其实是两个类
      

  2.   

    ch21st(风尘鸟.shannon) 能不能把滚动条的那个控制代码给我贴上来,谢谢!
      

  3.   

    清除刚刚添加的按钮
    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,将它隐藏了
      

  4.   

    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的边框线和标题就不好看了
    滚动条的代码只是示例,你可以自己思考后重写
      

  5.   

    那个vscroll滚动条的东西我还是没有搞定,谁还能帮我一把,
    就是在picture1中动态生成若干按钮,我已经排列好了,现在就是如果让这么多的
    按钮在frame中的picture中滚动显示?