Office中国论坛/Access中国论坛
标题:
另类控件自适应窗体
[打印本页]
作者:
goodidea
时间:
2005-3-31 01:52
标题:
另类控件自适应窗体
如图
[attach]9673[/attach]
作者:
ui
时间:
2005-3-31 02:44
怎么做的,如何实现? 想知道
作者:
Trynew
时间:
2005-3-31 06:47
标题:
回复:(goodidea)另类控件自适应窗体
[attach]9676[/attach]
在Resize事件中通过遍历窗体控件进行判断和设置,变量 i 记录第几行,, j 记录当前变量的右边位置。
Private Sub Form_Load()
Dim ctl As Control
For Each ctl In Me.Controls
If Not TypeOf ctl Is Label And ctl.Name <> "BZ" Then
ctl.Tag = ctl.Width
End If
Next
End Sub
Private Sub Form_Resize()
Echo False
Dim i As Integer, j As Integer, ctl As Control, ctlLast As Control
Me.Width = Me.InsideWidth - 50
Me.BZ.Left = Me.InsideWidth - Me.BZ.Width - 100
Me.BZ_标签.Left = Me.BZ.Left
Me.BZ.Height = Me.InsideHeight - 500
For Each ctl In Me.Controls
If Not TypeOf ctl Is Label And ctl.Name <> "BZ" Then
If j <> 0 And j + 50 + Controls(ctl.Name & "_标签").Width + Val(ctl.Tag) > Me.InsideWidth - Me.BZ.Width - 100 Then
j = 0
Me.主体.Height = Me.主体.Height + 1000
i = i + 1
If Not ctlLast Is Nothing Then ctlLast.Width = Me.InsideWidth - Me.BZ.Width - 100 - ctlLast.Left - 100
End If
Controls(ctl.Name & "_标签").Top = i * 500 + 100
Controls(ctl.Name & "_标签").Left = j + 50
ctl.Top = i * 500 + 100
ctl.Left = Controls(ctl.Name & "_标签").Left + Controls(ctl.Name & "_标签").Width
If 50 + Controls(ctl.Name & "_标签").Width + Val(ctl.Tag) > Me.InsideWidth - Me.BZ.Width - 100 Then
ctl.Width = Me.InsideWidth - Me.BZ.Width - 100 - ctl.Left - 100
Else
ctl.Width = Val(ctl.Tag)
End If
Set ctlLast = ctl
j = ctl.Left + ctl.Width
End If
Next
Me.主体.Height = Me.InsideHeight
Echo True
End Sub
作者:
ui
时间:
2005-3-31 18:08
高,的确高
作者:
7777777
时间:
2008-5-18 12:59
高,的确高
作者:
yori2007
时间:
2008-5-20 10:38
[:31]
作者:
ICEMAN
时间:
2010-4-1 17:07
高,顶
作者:
li08hua
时间:
2010-5-17 23:22
向高手学习!
作者:
df
时间:
2010-7-13 21:51
顶,顶
作者:
ny66
时间:
2010-8-2 09:00
向高手学习
作者:
Access_study
时间:
2018-3-12 07:40
窗体和控件根据屏幕大小,自动适应。
作者:
88189746
时间:
2021-5-1 17:04
学习了,谢谢
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/)
Powered by Discuz! X3.3