vb 窗体全屏的时候,窗体上面的图片与其他控件如何一起变大?

谁知道啊?... 谁知道啊? 展开
 我来答
szqaly
2013-08-28 · TA获得超过1745个赞
知道大有可为答主
回答量:2107
采纳率:77%
帮助的人:1589万
展开全部

要在Form_Resize事件中对象控件重新布置。

一般按窗体客户区大小的比率来设置,客户区尺寸属性是ScaleWidth,ScaleHeight。

预先在Form_Load事件中记录每个控件长宽,和x,y坐标与窗体的比率,可以把它们记在控件的Tag属性中。

比如:对picture1调整

private sub form_load()
picture1.tag=picture1.left/scalewidth & "," &  picture1.top/scaleheight & "," & picture1.width/scalewidth & ","  & picture1.height/scaleheight
end sub
private sub form_resize()
dim a
a=split(picture1.tag,",")
picture1.left=val(a(0))*scalewidth
picture1.top=val(a(1)) *scaleheight
picture1.width=val(a(2))*scalewidth
picture1.height=val(a(3))*scaleheight
end sub
'------------------------
'对窗体上所有控件调整
Private Sub form_load()
On Error Resume Next
Dim c As Control
For Each c In Controls
    c.Tag = c.Left / ScaleWidth & "," & c.Top / ScaleHeight & "," & c.Width / ScaleWidth & "," & c.Height / ScaleHeight
Next
End Sub
Private Sub form_resize()
On Error Resume Next
Dim a
Dim c As Control
For Each c In Controls
    a = Split(c.Tag, ",")
    c.Left = Val(a(0)) * ScaleWidth
    c.Top = Val(a(1)) * ScaleHeight
    c.Width = Val(a(2)) * ScaleWidth
    c.Height = Val(a(3)) * ScaleHeight
Next
End Sub
追问
可以追加注释吗?给你高分回报!
追答
Private Sub form_load()
On Error Resume Next
Dim c As Control
For Each c In Controls
c.Tag = c.Left / ScaleWidth & "," & c.Top / ScaleHeight & "," & c.Width / ScaleWidth & "," & c.Height / ScaleHeight
Next
'载入窗体时扫描每个控件,把控件的位置,尺寸和 窗口客户区尺寸的比例值存入该控件的Tag属性中。供重新调整时使用。tag中的字符串:“left值,top值,宽度,高度”
End Sub

Private Sub form_resize()
On Error Resume Next
Dim a
Dim c As Control
For Each c In Controls ’循环获得每个控件
a = Split(c.Tag, ",") ’ 把tag中的字符串分隔为数组
c.Left = Val(a(0)) * ScaleWidth ‘把left 比例值乘于新窗口窗户区宽度赋给left属性
c.Top = Val(a(1)) * ScaleHeight
c.Width = Val(a(2)) * ScaleWidth
c.Height = Val(a(3)) * ScaleHeight
Next
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式