我要做一个VB小程序,其中有一个picture控件,载入的图片超过了控件的垂直长度,请问怎么和垂直滚动条结合

图片如下,在红方框处有一个picturebox和一个垂直滚动条,请问如何添加代码,使垂直滚动条可以控制picturebox,使其中的未显示完整的垂直内容受滚动条控制,分还... 图片如下,在红方框处有一个picturebox和一个垂直滚动条,请问如何添加代码,使垂直滚动条可以控制picturebox,使其中的未显示完整的垂直内容受滚动条控制,分还可以加的,只求这一条代码,网上的不少我也找过,不符合我的情况,希望认真回答!
1楼的朋友,可以详细一点说明吗?我加分了。2楼的朋友,你的办法需要有command控件,但是我的图片是在属性中加载的。3楼的朋友,我不太懂……
展开
 我来答
二白Q0
2010-02-07 · TA获得超过2414个赞
知道大有可为答主
回答量:990
采纳率:0%
帮助的人:1116万
展开全部

最简单的应该是用Picture当作容器,里面放置一个Image来显示图像,以下代码需要在窗口中放置标签、 文本框、按钮、标准对话框控件、Picuture各一个(其中Picutre控件中需要放置一个Image和一个垂直滚动条,如下图),然后使用下列代码即可:

Private Sub Command1_Click()

    Dim oPic As StdPicture

    With CommonDialog1

        .Filter = "所有图片文件(*.jpg;*.gif;*.bmp;*.emf;)|*.jpg;*.gif;*.bmp;*.emf;"

        .ShowOpen

        If .FileName <> "" Then

            Text1 = .FileName

            Set oPic = LoadPicture(.FileName)

            If Not oPic Is Nothing Then

                Image1.Picture = oPic

                Image1.Left = 0

                Image1.Top = 0

                If Image1.Height > Picture1.ScaleHeight Then

                    VScroll1.Max = (Image1.Height - Picture1.ScaleHeight) / 10

                    VScroll1.Value = 1

                    VScroll1.Value = 0

                    VScroll1.Visible = True

                    VScroll1.Refresh

                Else

                    VScroll1.Visible = False

                End If

            End If

        End If

    End With

End Sub

Private Sub Form_Load()

    Text1.Locked = True

    Picture1.ScaleMode = vbPixels

    Image1.Left = 0

    Image1.Top = 0

    With VScroll1

        .Left = Picture1.ScaleWidth - .Width

        .Top = 0

        .Height = Picture1.ScaleHeight

    End With

End Sub

Private Sub VScroll1_Change()

    If Image1.Picture <> 0 Then

        Image1.Top = -VScroll1.Value * 10

        VScroll1.LargeChange = 20

    End If

End Sub

百度网友2ca1c0f24
2010-02-07 · TA获得超过2037个赞
知道大有可为答主
回答量:4364
采纳率:0%
帮助的人:3493万
展开全部
Picture1控件中放置图片后,其图片在控件中的位置已经确定,仅仅利用Picture1和滚动条实现图片滚动是不可能的。
但是我们可以借助其他控件来实现,其方法是:
在你放置Picture1控件的位置首先放置一个Frame1框架,首先将框架的Height属性调整到和图片的高低一样,在框架中放置
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jcweiran
2010-02-07
知道答主
回答量:27
采纳率:0%
帮助的人:16.6万
展开全部
最简单的方法是:

两个picturebox,竖滚动条Scroll1,横滚动条Scroll2

一个picturebox作为容器,另一个picturebox和那两个滚动条放到前一个picturebox里面,然后再输入以下代码

Private Sub Scroll1_Change() '滚动条操作
Picture2.Top = -Scroll1.Value
End Sub
Private Sub Scroll1_Scroll()
Picture2.Top = -Scroll1.Value
End Sub
Private Sub Scroll2_Change()
Picture2.Left = -Scroll2.Value
End Sub
Private Sub Scroll2_Scroll()
Picture2.Left = -Scroll2.Value
End Sub

在form_load中再写上这些
With Scroll1
.Height = Picture1.Height
End With
With Scroll2
.Width = Picture1.Width
End With
其他属性自己再设置一下就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
luomandick
2010-02-07 · TA获得超过1175个赞
知道小有建树答主
回答量:902
采纳率:0%
帮助的人:736万
展开全部
什么叫未显示完整的内容?那个图片不是一个整体的啊···如果是一个整体的话,那你直接编滚动条就可以了,真不行的话就用两个图片框好了···
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
aspd199
2010-02-07 · TA获得超过906个赞
知道小有建树答主
回答量:865
采纳率:50%
帮助的人:498万
展开全部
picture的paintpicture方法 根据滚动条的value值调整图象y坐标即可
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式