常见问题:自动调整窗口内控间的大小

常见问题:自动调整窗口内控间的大小,第1张

常见问题:自动调整窗口内控间的大小,第2张

这是一个课程模块:

1.创建一个新的类模块,添加以下代码,并将类模块命名为(示例:autosize)
2。添加一个窗口并添加:Private el作为新的autosize
3。在Form_Load事件4中添加el.initme
。添加el。

option Explicit Private nFormHeight As Integer Private nFormWidth As Integer Private nNumOfControls As Integer Private nTop()As Integer Private nLeft()As Integer Private n height()As Integer Private nfontize()As Integer Private nRightMargin()As Integer Private bfirst time As Boolean

Sub Init(frm As Form,可选nWindState As Variant)Dim I As Integer Dim bwin max As Boolean bwin max = Not is missing(nWindState)nFormHeight = frm。高度nFormWidth = frm。宽度nNumOfControls = frm。controls . Count-1 bFirstTime = True ReDim nTop(nNumOfControls)ReDim nlef(nNumOfControls)ReDim n height(nNumOfControls)ReDim nWidth(nNumOfControls)ReDim nfontize(nNumOfControls)ReDim nRightMargin(nNumOfControls)出错时恢复Next For I = 0到nNumOfControls如果类型为frm。Controls(I)是Line,那么nTop(I) = frm。Controls(I) .Y1 nLeft(I) = frm。Controls(I).X1 nHeight(I) = frm。控件(I). y2 n宽度(I) = frm。Controls(I).X2 Else nTop(I) = frm。对照(一)。Top nLeft(I) = frm。对照(一)。Left nHeight(I) = frm。对照(一)。高度nWidth(I) = frm。对照(一)。宽度nfontize(I)= frm。FontSize nRightMargin(I) = frm。对照(一)。如果下一步是bWinMax或frm,则右边距结束。WindowState = 2 Then frm。高度=屏幕。高度frm。宽度=屏幕。宽度否则frm。高度= frm。高度*屏幕。身高/ 7290 frm。宽度= frm。宽度*屏幕。width/9690 End If bFirstTime = True End Sub

sub Form resize(frm As Form)Dim I As Integer Dim n options size As Integer Dim dratio x As Double Dim dratio n savered raw As Long On Error Resume Next nsavered raw = fr m . autore draw frm如果bFirstTime为真,那么bFirstTime =假,那么退出Sub End If If frm。高度< n高度/ 2,然后是frm。如果是frm,Height = nFormHeight / 2 Endif。宽度< nFormWidth / 2然后frm。width = nFormWidth/2 Endif n options ize = 400 dratio y = 1 # *(nFormHeight-n options ize)_/(frm。height-nCaptionSize)dRatioX = 1 # * nFormWidth/frm。如果类型为frm,I = 0到nNumOfControls的错误恢复下一个的宽度。控制(I)是线,然后是frm。controls(I). y1 = Int(nTop(I)/dRatioY)frm。controls(I). x1 = Int(nlef(I)/dRatioX)frm。controls(I). y2 = Int(n height(I)/dRatioY)frm。controls(I). x2 = Int(nWidth(I)/dRatioX)Else frm。对照(一)。Top = Int(nTop(I) / dRatioY) frm。对照(一)。left = Int(nlef(I)/dRatioX)frm。对照(一)。height = Int(n height(I)/dRatioY)frm。对照(一)。width = Int(nWidth(I)/dRatioX)frm。对照(一)。font size = Int(nfontize(I)/_ dRatioX)+Int(nfontize(I)/dRatioX)Mod 2 frm。对照(一)。right margin = Int(nRightMargin(I)/dratio y)End If Next frm。auto draw = nsaveraw End Sub

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 常见问题:自动调整窗口内控间的大小

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情