vb程序使用水平和垂直滚动条来控制2个picturebox的滚动,picturebox1是外框,picturebox2在它上面移动,然后用滚动条控件来控制picturebox2的移动。
现在的问题是:picturebox1的大小是固定的,picturebox2的大小是由程序动态设置的,在拖动的时候(picturebox2长宽太大时)程序有时候会报溢出的错误。
我在程序里是这么控制的。
程序开始时:
' 设置滚动条
If pic2.Width > pic1.Width Then
vsbWidth.Visible = True
vsbWidth.SmallChange = (pic2.Width - pic1.Width) / 10
Else
vsbWidth.Visible = False
End If
If pic2.Height > pic1.Height Then
vsbHeight.Visible = True
vsbHeight.SmallChange = (pic2.Height - pic1.Height) / 10
Else
vsbHeight.Visible = False
End If
控制部分
Private Sub vsbHeight_Change() If vsbHeight <= vsbHeight.Max / 10 Then
picStock.Top = 0 - vsbHeight.Value
End If
End Sub大家都是怎么控制滚动条的,给些建议,谢谢。
现在的问题是:picturebox1的大小是固定的,picturebox2的大小是由程序动态设置的,在拖动的时候(picturebox2长宽太大时)程序有时候会报溢出的错误。
我在程序里是这么控制的。
程序开始时:
' 设置滚动条
If pic2.Width > pic1.Width Then
vsbWidth.Visible = True
vsbWidth.SmallChange = (pic2.Width - pic1.Width) / 10
Else
vsbWidth.Visible = False
End If
If pic2.Height > pic1.Height Then
vsbHeight.Visible = True
vsbHeight.SmallChange = (pic2.Height - pic1.Height) / 10
Else
vsbHeight.Visible = False
End If
控制部分
Private Sub vsbHeight_Change() If vsbHeight <= vsbHeight.Max / 10 Then
picStock.Top = 0 - vsbHeight.Value
End If
End Sub大家都是怎么控制滚动条的,给些建议,谢谢。
解决方案 »
- 实时曲线数据存储求助
- 求个api函数
- 动态托盘问题
- 用过vsflexgrid的朋友请进来交流一下。。
- 高手,快帮忙,怎样使vsflexgrid控件中单元格中的内容多行显示
- 如何获得文本框中每个字的缇数(字体同样大小)
- 求助,picturebox加入一张15MB,20000*17000象素的图片提示 内存溢出,如何解决啊
- 请教!如何在VB下将文本中数据提取并按要求组成XML包
- 高分!!请E文好的高手帮帮忙,小弟是菜鸟,非常想搞明白这些代码的意思
- enmity(灵感之源),来取分!bmp --> jpg
- dbs文件 是什么?
- MSXML2.XMLHTTP如何访问需要设置HTTP Proxy来获取网页内容?
2 两个picturebox的左边不是在一起的picture2可以在picture1上向左移动。
3 移动的结果应该怎样检查。我做过类似检查控制,结果在picture2长度很大时,用滚动条就显示不全了。
我这里有几个值得概念不太清晰,max的值的单位,而且滚动条本身也有values值。
还有我的滑块大小和滚动的距离也不相配。大家有什么好的例子我可以参考一下(动态增加的,不是固定大小移动那种。)
如果我参考picturebox2和picturebox1的长宽来设定的话,在picture2值很大的时候,就会溢出。
但是如果像你说的用整数约一下的话,因为change值不准确,容易在拖动滚动条时候,picture2显示不全。