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