我建立了一个MID窗体
又建立了一个form窗体,把它的midchild=true windowstate=2-max
但是我在运行时,form窗体内的控件总是偏左方向显示,并不是按照
我建立的位置显示,这是为什么,怎样解决呢?
又建立了一个form窗体,把它的midchild=true windowstate=2-max
但是我在运行时,form窗体内的控件总是偏左方向显示,并不是按照
我建立的位置显示,这是为什么,怎样解决呢?
解决方案 »
- 用vb设计一个计算器,请求计算机高手帮忙!!
- 一个treeview控件已经形成了树形内容(包括父子节点),如何将此树的内容、层次复制到另外一个treeview控件中?
- 8192个字节,相当于多少个汉字?
- 请教关于"网络路径"的问题: 为什么有些"网络路径"用文件对话框可以看到并打开,但用 Dir 函数却检测不到呢??
- MenuItemFromPoint函数如何使用???
- 请问要用DataGrid显示数据库中的内容,一定要用静态的那种ADODC控件吗?
- 面对这么强大的“军团”!我无能为力了!
- 急!!!!!!!!!请问如何使vb支持XML?
- vb中image控件能不能显示会动的gif图片?如果可以要怎么设置,不行的话有其他控件可用吗
- 高手救命!!!
- 关于对话框怎么做?……在线
- 能否直接打开打印机属性对话框
你应在在windowstate=2-max状态下排好位置
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
Private Sub Form_Load()
Call ResizeInit(Me) '在程序装入时必须加入End SubPrivate Sub Form_Resize()
Call ResizeForm(Me) '确保窗体改变时控件随之改变End Sub哈哈!用上面的方法接可以解决了,不知道谁还有更好的方法