datagrid and msflexgrid 随窗体缩放如何相应改变大小???

janecat 2003-08-29 09:04:24
datagrid and msflexgrid 随窗体缩放如何相应改变大小???
...全文
39 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
战箫 2003-08-29
  • 打赏
  • 举报
回复
放到form_resize()过程中
msflexgrid.move 0,0,me.scalewidth,me.scaleheight
或是
with msflexgrid
.left=me.left
.top=0
.width=me.scalewidth
.height=me.scaleheight
end with
abc10 2003-08-29
  • 打赏
  • 举报
回复
以下放到模块里

Public FormOldWidth As Long
Public FormOldHeight As Long


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
End Sub

Public Sub ResizeForm(FormName As Form) '当窗体大小发生变化时,各控件尺寸及位置作相应变化
Dim Pos '控件原先尺寸、位置
Dim I As Long '计数器
Dim Obj As Control '遍历窗体内控件
Dim ScaleX As Double, ScaleY As Double '缩放比例

ScaleX = FormName.ScaleWidth / FormOldWidth

ScaleY = FormName.ScaleHeight / FormOldHeight

On Error Resume Next

For Each Obj In FormName
Pos = Split(Obj.Tag, " ", , vbTextCompare)
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next Obj
End Sub
以下放到你msflexgrid所在的窗体内。
Private Sub Form_Load()
Call ResizeInit(Me)
End Sub

Private Sub Form_Resize()
Call ResizeForm(Me)
End Sub

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧