关于滚动条的问题,哪位会的兄弟帮帮忙!解决了立刻给分!分不够再加!

delphitop 2004-08-30 04:53:13
我在PictureBox上动态增加了一些图形和Image控件。当Image控件增加到一定数量时,在PictureBox上就显示不下了,就会超出PictureBox的范围,我要如何能加个竖直滚动条和垂直滚动条,当拉动滚动条时就可以看到显示不下的内容?请会的兄弟尽快帮帮忙!谢谢了!
...全文
273 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunny8226 2004-09-13
  • 打赏
  • 举报
回复
airplay_007@163.com 也发给我一个吧。谢谢。
lujianyu1189 2004-09-13
  • 打赏
  • 举报
回复
这些天在出差,回去后给你发吧
delphitop 2004-09-10
  • 打赏
  • 举报
回复
我的E-Mail是:zhangqinghui@ecode.net.cn 麻烦lujianyu1189的朋友把你的控件发给我好么?在下不胜感激!其他的朋友也帮忙顶一下!分不够再加!
lujianyu1189 2004-08-30
  • 打赏
  • 举报
回复
我给你一个控件,把它放在picture上,不管你picture 上面放多少个image,或别的什么东西,都可以滚动的.而且不用写一行代码,很简单!
--------------------------------------------------------------
我的email:lujianyu-jx@126.com,我发给你!
northwolves 2004-08-30
  • 打赏
  • 举报
回复
这样解决(为了方便显示,用文本框代替了IMAGE):

' Add picturebox1, vscrollbar1,hscrollbar1 in form1 and text1(index=0) in picture1


Option Explicit

Private Sub Form_Load()
Me.Move 1000, 1000, 5000, 5000
Picture1.Move 0, 0, 4000, 4000
VScroll1.Move 4000, 0, 300, 4000
VScroll1.Max = 6
VScroll1.Min = 0
HScroll1.Move 0, 4000, 4000, 300
HScroll1.Max = 6
HScroll1.Min = 0
On Error Resume Next
Dim i As Integer
For i = 0 To 99
Load Text1(i)
Text1(i).Container = Picture1
Text1(i).Visible = True
Text1(i).Text = i + 1
Text1(i).Move 1000 * (i Mod 10), 1000 * (i \ 10), 1000, 1000
Next
End Sub

Private Sub HScroll1_Change()
Dim i As Integer
For i = 0 To 99
Text1(i).Left = 1000 * (i Mod 10 - HScroll1.Value)
Next
End Sub
Private Sub vScroll1_Change()
Dim i As Integer
For i = 0 To 99
Text1(i).Top = 1000 * (i \ 10 - VScroll1.Value)
Next
End Sub
BlueBeer 2004-08-30
  • 打赏
  • 举报
回复
'一个简单的滚动条例子
'Form1中放一个PictureBox: Picture1
'Picture1中放一个Image: Image1
'一个HScrollBar: HScroll1
'一个VScrollBar: VScroll1

Private Sub Form_Load()
With Image1
.Move 0, 0
.Picture = LoadPicture("c:\windows\logow.sys")
'如果这句出错,请改为其他的图片文件
Picture1.Move 0, 0, .Width \ 2, .Height \ 2
End With
With Picture1
HScroll1.Move 0, .ScaleHeight - 255, .ScaleWidth - 255, 255
HScroll1.Max = .ScaleWidth + 255 + 255 \ 2
HScroll1.LargeChange = .ScaleWidth / 50
HScroll1.SmallChange = .ScaleWidth / 50
VScroll1.Move .ScaleWidth - 255, 0, 255, .ScaleHeight - 255
VScroll1.Max = .ScaleHeight + 255 + 255 \ 2
VScroll1.LargeChange = .ScaleHeight / 50
VScroll1.SmallChange = .ScaleHeight / 50
Dim cmdMask As CommandButton
Set cmdMask = Controls.Add("vb.commandbutton", "mask", Picture1)
cmdMask.Move .ScaleWidth - 255, .ScaleHeight - 255, 255, 255
cmdMask.Enabled = False
cmdMask.Visible = True
End With
End Sub

Private Sub HScroll1_Change()
Image1.Left = -HScroll1.Value
End Sub

Private Sub HScroll1_Scroll()
Call HScroll1_Change
End Sub

Private Sub VScroll1_Change()
Image1.Top = -VScroll1.Value
End Sub

Private Sub VScroll1_Scroll()
Call VScroll1_Change
End Sub
还想懒够 2004-08-30
  • 打赏
  • 举报
回复
http://www.vbaccelerator.com/home/VB/Code/Controls/Scroll_Bars/article.asp

这里面有你想要的结果,是用API及子类技术自动生成的ScrollBar,请注意里面的引用的文件也同样需要从www.vbaccelerator.com里面去下载源码。
delphitop 2004-08-30
  • 打赏
  • 举报
回复
不是这样的,我的PictureBox里要有好几个Image呢!但Image很多时,有些Image就超出了PictureBox,我想通过滚动看到超出了PictureBox的Image!还有什么好的解决办法?继续!等待ING..........
tztz520 2004-08-30
  • 打赏
  • 举报
回复
上面的是图片高度的处理,同样的方法可以处理宽度
tztz520 2004-08-30
  • 打赏
  • 举报
回复

Private Sub Command1_Click()
VScroll1.Max = Image1.Height - Picture1.Height
End Sub

Private Sub VScroll1_Change()
Image1.Top = -VsSource.Value
End Sub
rainstormmaster 2004-08-30
  • 打赏
  • 举报
回复
http://search.csdn.net/Expert/topic/318/318267.xml?temp=.6562158
delphitop 2004-08-30
  • 打赏
  • 举报
回复
能详细的写一下么?还有,PIC1的宽度好象达到一定大小是就不能增大了。怎样可以解决呀?谢谢!
guolibin 2004-08-30
  • 打赏
  • 举报
回复
我用了两个PictureBox:PIC1、PIC2 把PIC1放在PIC2上,在PIC2左边和下边放了滚动条的控件
一般情况下滚动条是无效的
在PIC1_Resize事件中加入代码:如果PIC2的边长大于PIC1的边长,那么滚动条就设置为有效
在滚动条的拉动事件中调整PIC2的TOP 和LEFT属性值就可以达到效果了

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧