控件位置的摆放 我在窗体内放置好控件后,运行最大化以后,控件就显得有些乱了 怎么能让控件在窗体改变后,还能显得有条理!!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 加入Form_Resize事件 :)Private Sub Form_Resize() If Me.WindowState = 2 Then ''这里2表示最大化 /*在这里加入重新设置控件位置的代码*/ End IfEnd Sub 注意:计算坐标的时候应该使用容器的ScaleWidth、ScaleHeight属性Width、Height属性是算上窗口外框的大小,对于Form只能是TwipScaleWidth、ScaleHeight属性是客户区(能摆放控件的区域,不包括标题栏、菜单栏、边框、滚动条等)的大小为什么要在ReSzie事件中改变大小这是为了能让用户可以在运行时改变窗口大小而“运行时改变窗口大小”的功能是窗口的基本功能如果你的程序无法做到这一点就给人一种不专业的感觉(至少我将绝不用那样的软件)所以一定要锻炼在ReSzie事件中调整控件坐标的能力对于控件之间有间隙可以先定义一个常数来说明控件之间的标准间隙大小然后在计算控件坐标的时候也算上该常数只是数学运算稍微麻烦了一点而已其实一般的界面都是分成几块的如资源管理器分为上面的工具栏区域(ReBar控制项)和下面的TreeView、ListView区域它在处理ReSzie事件时只需修改ReBar控制项的宽度以及下面的TreeView、ListView控制项的位置由于ReBar控制项会自动修改其中的工具栏的位置,于是程序员不需要操心从上面那个例子可看出由于一般的界面都是分成几块区域的只有区域本身需要修改位置区域中的控件大多不需要修改位置所以其实在窗口中真正需要手动算坐标的其实很少可以在VB中利用这种思想可将控件放入不同的PictureBox中特别是PictureBox有Align属性可以进一步的减少代码量假若PictureBox中的控件需要定位则应在PictureBox的ReSize事件中定位控件(注意此时别在Form的ReSize事件定位,那是人为制造难度)区域大小也应根据PictureBox的ScaleHeight、ScaleWidth属性此时With语句的作用就很重要了(如在“With PicLeft”块中写定位代码)注意这时为了减少PictureBox所占资源应将其AutoRedraw、HasDC属性都设为False 佩服zyl910!同时感谢你的回复 :) 如何遍历系统盘 查找指定文件,然后再删除它? 用vb来生成word格式试卷,不知用什么方法最有效果 请教各位高手关于下标越界的问题 怎样做才能是输出的文件是unicode 格式? 数据库提供程序或其他服务返回 E_fail 状 关于ADO中Filter的问题 如何对这段代码提速 水晶报表的.rpt文件内嵌的数据库路径能用控件动态修改吗? 100分求助文件读取的代码? 如何在窗口里嵌入一个html文件 获取存储过程返回的变量时出错~~~~~~~~~~~~ 初学问题~~
计算坐标的时候应该使用容器的ScaleWidth、ScaleHeight属性
Width、Height属性是算上窗口外框的大小,对于Form只能是Twip
ScaleWidth、ScaleHeight属性是客户区(能摆放控件的区域,不包括标题栏、菜单栏、边框、滚动条等)的大小
为什么要在ReSzie事件中改变大小
这是为了能让用户可以在运行时改变窗口大小
而“运行时改变窗口大小”的功能是窗口的基本功能
如果你的程序无法做到这一点
就给人一种不专业的感觉(至少我将绝不用那样的软件)
所以一定要锻炼在ReSzie事件中调整控件坐标的能力
对于控件之间有间隙
可以先定义一个常数来说明控件之间的标准间隙大小
然后在计算控件坐标的时候也算上该常数
只是数学运算稍微麻烦了一点而已其实一般的界面都是分成几块的
如资源管理器分为上面的工具栏区域(ReBar控制项)和下面的TreeView、ListView区域
它在处理ReSzie事件时只需修改ReBar控制项的宽度以及下面的TreeView、ListView控制项的位置
由于ReBar控制项会自动修改其中的工具栏的位置,于是程序员不需要操心从上面那个例子可看出
由于一般的界面都是分成几块区域的
只有区域本身需要修改位置
区域中的控件大多不需要修改位置
所以其实在窗口中真正需要手动算坐标的其实很少可以在VB中利用这种思想
可将控件放入不同的PictureBox中
特别是PictureBox有Align属性
可以进一步的减少代码量假若PictureBox中的控件需要定位
则应在PictureBox的ReSize事件中定位控件(注意此时别在Form的ReSize事件定位,那是人为制造难度)
区域大小也应根据PictureBox的ScaleHeight、ScaleWidth属性
此时With语句的作用就很重要了(如在“With PicLeft”块中写定位代码)
注意这时为了减少PictureBox所占资源
应将其AutoRedraw、HasDC属性都设为False
同时感谢你的回复 :)