不要拉了窗体大小就找不到控件了!
 谢谢提供,先来先得分!

解决方案 »

  1.   

    如让一个文本框的大小随窗口的变化而变
    Private Sub Form_Resize()
    With Text1
        .Top = 0
        .Left = 0
        .Height = Me.ScaleHeight
        .Width = Me.ScaleWidth
    End With
    End Sub
      

  2.   

    Option Explicit
    Private FormOldWidth As Long
    '`保存窗体的原始宽度
    Private FormOldHeight As Long
    '`保存窗体的原始高度'`在调用ResizeForm前先调用本函数
    Public Sub ResizeInit(FormName As Form)
    Dim Obj As Control
    FormOldWidth = FormName.ScaleWidth
    FormOldHeight = FormName.ScaleHeight
    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 DoubleScaleX = FormName.ScaleWidth / FormOldWidth
    '`保存窗体宽度缩放比例
    ScaleY = FormName.ScaleHeight / FormOldHeight
    '`保存窗体高度缩放比例
    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
    Next I
    Next Obj
    On Error GoTo 0
    End Sub
      

  3.   

    将以上代码保存为一个模块窗体调用方法Private Sub Form_Load()
    ResizeInit Me
    End Sub
    Private Sub Form_Resize()
    ResizeForm Me
    End Sub
      

  4.   

    以上代码是在《Visual Basic 案例教程》上抄来的吧。
    不过这个模块对组合框不支持,需要自己改写的。
      

  5.   

    在窗体的form_resize()事情过程中设置就可以了。楼上有说的很清楚的。
      

  6.   

    只要将FORM的boderstayle属性设置成1就行了
      

  7.   

    Private Sub Form_Resize()
        With Text1
            .Top = 10
            .Left = 10
            .Height = Me.ScaleHeight - 20
            .Width = Me.ScaleWidth - 20
        End With
    End Sub