注册 登录
编程论坛 VB6论坛

窗体变化

cunfu2018 发布于 2018-12-22 00:15, 2381 次点击
只有本站会员才能查看附件,请 登录
有一附件,窗体中的控件能够随着窗体变化而变化,但有一点不足:控件间的位置也在变化,即控件与控件之间的间隔也按比例变化了,如何能够实现只让控件随窗体变化而变化,控件间的间隔不变。
5 回复
#2
wds12018-12-22 09:43
看了一下你的程序,想要保持固定间距,只要计算出原来间距,窗口调整后重新调整即可。

以下是保持左右间距的简单控制。

Private Sub Form_Resize()
    Call ResizeForm(Me)
    RichTextBox1.Left = TreeView1.Left + TreeView1.Width + 225
    Text1.Left = TreeView1.Left + TreeView1.Width + 225
End Sub
#3
cunfu20182018-12-22 16:57
回复 2楼 wds1
谢谢!这种情况我想到过,如果只有几个控件还行(如附件示例),但如果做一个复杂的,这么写太繁锁,有没有可以利用循环实现的,水平和垂直都要考虑。
#4
wds12018-12-22 19:46
一般复杂的我都是放到frmae中。

你可以考虑,窗体缩放仅调整对应的frame,每个frame中的控件以自己的frame为基点计算top,left。
#5
cunfu20182018-12-22 21:49
回复 4楼 wds1
frmae有所接触但不多,能给个示例吗?学习借鉴
#6
ZHRXJR2018-12-23 11:50
以下是引用cunfu2018在2018-12-22 16:57:18的发言:

谢谢!这种情况我想到过,如果只有几个控件还行(如附件示例),但如果做一个复杂的,这么写太繁锁,有没有可以利用循环实现的,水平和垂直都要考虑。


感到非常困难,窗体变化根据函数可以使其中控件位置、大小、控件之间的间隔都会发生变化,如果使控件间隔不变化,势必引起窗体大小不适应控件,窗体的高度与宽度, 最右边空余部分太多、最下边空余部分太多,看起来更不舒服。
如果想使得窗体右边与下边适应控件,又会引起控件的变化,从而就会形成一种无限循环,得不偿失。
至于使用其他容器,与窗体是一样的,因为窗体本身就是一种容器,其他容器包括 Frame 容器、Picture 容器等等,都是一样的。
1