我写的管理系统在设计的时候 窗体不是最大化,在运行的时候窗体是最大化运行的,这样窗体就会有一部分是空白的. 我想让窗体中的控件在窗体最大化的时候和设计的时候一样占满整个窗体,要怎么做?还有窗体在最大化和最小化的时候触发了什么事件?

解决方案 »

  1.   

    在Form_Resize事件中
    设置
    control.Move 0,0,frmMain.ScaleWidth ,frmmain.ScaleHeight
      

  2.   

    control.Move 0,0请问这个MOVE 0,0 是指定坐标还是就写0,0 就可以了!
      

  3.   

    在Form_Resize事件中
    每一次窗体发生变化都会执行Form_Resize事件。
    在设定控件大小时,控件的大小和窗体的大小建立一种比例关系就可以了
    比如
    text1.width=form1.width/2,这样text1的宽度就占窗体宽度的一半。
      

  4.   

    命令按钮的大小不变么〉?
    control.Move , frmmain.ScaleHeight- control.height -200
    这样相当于设定了top
    left的思路是相同的
      

  5.   

    Option Explicit
    Private ObjOldWidth As Long  '保存窗体的原始宽度
    Private ObjOldHeight As Long '保存窗体的原始高度
    Private ObjOldFont As Single '保存窗体的原始字体比'在调用ResizeForm前先调用本函数
    Public Sub ResizeInit(FormName As Form)
    Dim Obj As Control
                                      
    ObjOldWidth = FormName.ScaleWidth
    ObjOldHeight = FormName.ScaleHeight
    ObjOldFont = FormName.Font.Size / ObjOldHeight
    On Error Resume Next
    For Each Obj In FormName
    Obj.Tag = Obj.Left & " " & Obj.Top & " " & 
    Obj.Width & " " & Obj.Height & " "
    Next Obj
                                      
    On Error GoTo 0
    End Sub'按比例改变表单内各元件的大小,
    '在调用ReSizeForm前先调用ReSizeInit函数
    Public Sub ResizeForm(FormName As Form)Dim Pos(4) As Double
    Dim i As Long, TempPos As Long, StartPos As 
    Long
    Dim Obj As Control
    Dim ScaleX As Double, ScaleY As Double
                                      
    ScaleX = FormName.ScaleWidth / ObjOldWidth
    '保存窗体宽度缩放比例
    ScaleY = FormName.ScaleHeight / ObjOldHeight
    '保存窗体高度缩放比例
    On Error Resume Next
                                      
    For Each Obj In FormName
    StartPos = 1
     For i = 0 To 4
      '读取控件的原始位置与大小
      TempPos = InStr(StartPos, Obj.Tag, " ",vbTextCompare)
    If TempPos > 0 Then
     Pos(i) = Mid(Obj.Tag, StartPos, TempPos- StartPos)
    StartPos = TempPos + 1
     Else
    Pos(i) = 0
     End If
                                          
     '根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小
     Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY,Pos(2) * ScaleX, Pos(3) * ScaleY
     Obj.Font.Size = ObjOldFont * FormName.ScaleHeight
    Next i
                                      
    Next Obj
                                      
    On Error GoTo 0
    End SubPrivate Sub Form_Resize()
    '确保窗体改变时控件随之改变
    Call ResizeForm(Me)
     End SubPrivate Sub Form_Load()
    '在程序装入时必须加入
    Call ResizeInit(Me)
    End Sub