机房收费系统优化之控件随窗体改变而相应比例改变
来源:互联网 发布:淘宝网服饰女毛衣 编辑:程序博客网 时间:2024/05/28 01:34
在敲学生信息管理系统的时候,就想到了窗体最大化后,控件随窗体改变而相应比例改变的优化问题,但是没去实现,后在优化机房的时候,将以前积累的代码重新拿出来试了试:
在模块中声明公用函数:
<span style="font-size:18px;"><span style="font-size:18px;">Option ExplicitPrivate FormOldWidth As Long'保存窗体的原始宽度Private 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 On Error GoTo 0End Sub 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 / 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 0End Sub</span></span>
然后在相应的窗体中调用:
<span style="font-size:18px;"><span style="font-size:18px;">Private Sub Form_Resize() Call ResizeForm(Me) '确保窗体改变时控件随之改变End SubPrivate Sub Form_Load() Call ResizeInit(Me) '在程序装入时加入end sub</span></span>
令人觉得奇怪的是:新建的工程里就能完美的实现,但是放到机房收费系统就会报错:
后想起也许是因为机房收费系统中MDI窗体使用了PictureBox控件,导致需要用到SetParent函数才能显示子窗体的缘故,如果不在Form的Load事件中给窗体设定大小(Me.Height =自定义高度值;Me.Width = 自定义宽度值),运行的时候子窗体只有“头”会漏一点,除非设置BorderStyle属性为1来固定窗体大小,但是属性设置了,就没有最大化和最小化功能了。
由于这个功能在优化子窗体的时候没有太多必要,所以那时我就放弃了,直接将属性设为1。如今机房优化已经完成,回过头来新建了一个工程用来实验,实验成功!发现不是因为自己在窗体中限制了自定义宽度和高度的原因,也不是因为将其(Me.Height =自定义高度值;Me.Width = 自定义宽度值)写在了Form_Load事件中Call ResizeInit(Me) 这句代码前后的原因——这是我曾一度以为的错误原因。
可是用机房收费系统来试验代码依旧会报错,哪怕属性设置都没有错(如下)
以下代码是写在模块里边的:
我很是不解,为什么新建工程就不会出现这样的问题呢?所以,此博文的目的并不在于分享经验,而是请求指点~~~
0 0
- 机房收费系统优化之控件随窗体改变而相应比例改变
- 机房收费系统之窗体控件命名
- MFC窗体所有控件大小随窗体改变而改变
- 让控件随窗体大小改变而改变
- MFC控件大小随窗体改变而改变
- mfc 控件大小随窗体改变而改变
- MFC 控件大小随窗体改变而改变大小
- 控件随窗体大小改变而改变大小和位置
- MFC控件大小随窗体改变而改变 .
- MFC 控件大小随窗体改变而改变大小
- MFC 控件大小随窗体改变而改变大小
- [C#]控件大小随窗体改变而改变
- vb 中控件随窗体的改变成比例改变大小
- VB控件随窗体大小改变而改变、控件自适应窗体大小
- 机房收费系统之优化
- 机房收费系统优化之MSHFlexGrid控件的使用
- 怎样实现控件随窗体大小而改变!!
- Winform 控件随窗体大小改变而变化
- HDU 5412 CRB and Queries【整体二分+树状数组】
- Flume 收集Nginx日志到Hdfs Tail-to-hdfs sink
- Codeforces Round #315 (Div. 1) C. New Language(2-sat+贪心)(好题)
- android 如何设置图片颜色的透明度
- Cornerstone log 获取不到,超时,解决办法
- 机房收费系统优化之控件随窗体改变而相应比例改变
- php抓取远程数据排序
- android 优秀的几个框架
- cocos2d-js导弹跟踪算法(一边追着目标移动一边旋转角度)
- 算法、技术及其他
- Android中自定义checkbox样式
- 百度网页分享js代码
- gridx的使用
- TreeMap与HashMap的差异