如何使控件随着窗体大小改变控件大小?我以前用的是如下写法,现在发现这样写不行,关闭窗口时,窗体其实关上了,但是图片还没完全刷掉。哪位帮帮忙!谢了
On Error GoTo Er23
控件.Height = form1.Height - 2500
控件.Width = from1.Width - 100
exit Sub
Er23:

解决方案 »

  1.   

    ////////////////如何使控件随着窗体大小改变控件大小?
    '按比例改变表单内各元件的大小,
    '在调用ReSizeForm前先调用0ReSizeInit函数
    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
      '在调试时如果出现除数为零错误,是因为没有设定form的初值,请双击form1然后再测试,这个问题绝对不会在编译好的程序中出现
      If FormOldWidth = 0 Then '防止该错误的产生
        Exit Sub
      End If
      ScaleX = 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\\\\\\\\\\\\\\\\\\\\关闭窗口时,窗体其实关上了,但是图片还没完全刷掉。
    不明白
      

  2.   

    图片没关掉那个问题解决了,换成splliter控件就好了。不过还是想多向大家学习,有没有什么其它更好的办法。用那个控件,觉的多少会影响速度