在窗体上加了滚动条,是通过两个picturebox控件实现的,将所有控件都放在了picture2上,参考的是论坛上给的代码:上面图片中的代码是form load中的代码,
同时还有两句代码,
Private Sub HScroll1_Change()
    Picture2.Left = -HScroll1.Value
End Sub 
Private Sub VScroll1_Change()
    Picture2.Top = VScroll1.Value
End Sub
源代码Picture2.Top = VScroll1.Value是Picture2.Top = -VScroll1.Value,但是当移动滚动条时窗体上内容整体向下移动,所以我把负号去掉了。
现在存在的问题是:运行时,可以出来滚动条,但是如果把所运行的窗体最小化就会出现“实时错误5 无效的过程或调用参数”,调试后出错的代码如下图所示:(如果不将窗体最小化而是直接关闭就不会出现该提示,运行的时候也不会出现该提示)还有个问题就是,垂直滚动条向下移动时,拉到最底端的时候下边有很大一块空白的地方,可能是max的值设置的不对。
高手们,这个问题怎么解决啊?

解决方案 »

  1.   

    Private Sub Form_Resize()
        If Me.WindowState = vbMinimized Then Exit Sub '<-加上这个判断,最小化不用响应
        ...
    End Sub
      

  2.   

    高手!
    那垂直滚动条的max值是否有问题呢?
      

  3.   

    1)确定 Picture2 放在 Picture1 里面?
    2)确定是 Picture1 里的空白而不是 Picture2 的空白?
      

  4.   

    确定picture2是放在picture1里面的,但不确定是哪个的空白!
      

  5.   

    刚试了下,是picture1的空白!!
      

  6.   

    VScroll1.Max = Picture2.Height - Picture1.Width '<- Width?
      

  7.   

    这样,就应该是负的了,这是太感谢了!
    Private Sub VScroll1_Change()
        Picture2.Top = -VScroll1.Value
    End Sub