说三道四技术文摘-感悟人生的经典句子
说三道四 > 文档快照

在vb中让控件大小和位置随着表单的大小成比例变化的方法

HTML文档下载 WORD文档下载 PDF文档下载
在vb中让控件大小和位置随着表单的大小成比例变化的方法
作者:中国农业大学图书馆
洪重阳
---- vb的可视化编程方法使得windows的一般编程变得简单直观。尤其是程序界面设计,只需用鼠标将相应的控件(按钮、图框、表格等)拖放到表单(form)上直接调整其位置和大小,即可设计出漂亮实用的界面。但在程序运行期间,如果改变表单的大小,表单上控件的大小和位置并非成比例地发生相应变化,导致界面呈现难看的不均匀现象。

---- 上述现象和问题,可在表单Form_Resize()过程编程,通过定义表单的ScaleMode属性和表单中控件的Height、Width、Top、Left属性来解决这个问题。具体实现方法如下:

用表单的Height、Width、Top、Left属性设计表单在屏幕中的位置和大小。将表单中的控件大小和位置调整好,直到得到满意的界面。

选择表单的ScaleMode属性为user;设定ScaleHeight、ScaleWidth的值,如可将这俩个值设定为100或1000或其他的数值,也可使这俩个值不等,视个人的习惯而定,这里我们将其设为1000;使ScaleTop=0、ScaleLeft=0。
---- ScaleMode属性决定了表单的ScaleHeight、ScaleWidth、ScaleTop、ScaleLeft属性值和表单中控件的Height、Width、Top、Left属性值的度量单位(用户自定义、缇、点、像素、字符、英寸、毫米、厘米等)。一般使Scaletop和ScaleLeft等于零。ScaleHeight、ScaleWidth属性值表示以ScaleMode值为度量单位的表单的高和宽,它们的改变不会使表单的大小和位置发生变化。改变ScaleMode的值不会影响表单和表单中控件的位置和大小,只是表单的ScaleHeight、ScaleWidth属性值和表单中控件的Height、Width、Top、Left属性值要根据新的度量单位自动发生变化。由于表单的大小、表单中控件的位置和大小已经设定,除了"用户自定义"度量单位外,表单的ScaleHeight、ScaleWidth、ScaleTop、ScaleLeft属性值是一定的。只要手工改变表单的ScaleHeight、ScaleWidth、ScaleTop、ScaleLeft任一属性值,ScaleMode的值就变成了"用户自定义"。
---- 用户自定义ScaleHeight值表示将表单的高度等分了ScaleHeight等份,表单中控件的Height属性值是以表单高度等分了ScaleHeight等份的一份为单位。用户自定义ScaleWidth值表示将表单的宽度等分了ScaleWidth等份,表单中控件的Width属性值是以表单宽度等分了ScaleWidth等份的一份为单位。

---- 例如:有一个表单form1,form1中有一个控件Cammand1,Cammand1的位置和大小已经设计好

form1.ScaleMode=user
form1.Height=6800
form1.ScaleHeight=1000
这时Cammand1.Height的值是以6800/1000=6.8为单位的,
即为表单高度的千分之六点八为单位。

记下表单中每一个希望与表单大小变化而成比例变化的控件的Height、Width、Top、Left值。

用鼠标双击表单没有控件的地方,点出编程界面右上方的表单过程名表,选择Form_Resize过程,在Form_Resize过程编程如下:
Private Sub Form_Resize()
ScaleHeight = 1000
ScaleWidth = 1000
表单中控件名1.top=步骤3记下的值
表单中控件名1.Width=步骤3记下的值
表单中控件名1.Left=步骤3记下的值
表单中控件名2.Height=步骤3记下的值
表单中控件名2.top=步骤3记下的值
表单中控件名2.Width=步骤3记下的值
表单中控件名2.Left=步骤3记下的值
表单中控件名2.Height=步骤3记下的值
... ...
end sub

---- 总之, 通过以上4步就可实现让控件大小和位置随着表单的大小变化而成比例变化,从而解决界面因表单大小的改变而变得不均匀的问题。

Delphi的竖排标签 DELPHI构件制作方法 DELPHI控件Tweblabel的编制 DELPHI中MEMO组件的光标定位 Delphi中RichEdit的奥妙 Delphi中TApplication类 Delphi中日期时间输入的简洁方法 delphi中怎么调用interbase数据库? Memo的Undo功能-Delphi资料 RECT在Delphi中的灵活使用 StringGrid制作只读列-Delphi资料 TADOQuery下主明细表其属性关系如何设置,如何保存主表和明细表?-Delphi资料 TBatchMove用法-Delphi资料 TMemo的真正插入字符-Delphi资料 TREEVIEW的使用-Delphi资料 TreeView在电信综合统计管理系统中的应用-Delphi资料 VB6.0动态加载ActiveX控件漫谈-Delphi资料 捕捉来自 Thread 的异常-Delphi资料 定制Speedbar-Delphi资料 动态产生构件并相应事件-Delphi资料 对Borland可视部件的一处改进-Delphi资料 控件使用技巧-Delphi资料 改变VCL的行为--一个使用可视化元件的实例-Delphi资料 具有不同字体的列表框-Delphi资料 快速大量地更改控件内容-Delphi资料 快速动态创建MenuItem-Delphi资料 利用Delphi 5中调用Excel 97 利用Delphi的Tbitmap控件抓取屏幕图象 利用delphi美化你的菜单 面向组件的系统开发方法-Delphi资料 强大的树型编程控件TeeTree1.01-Delphi资料 高手请进!! 高手请进!! 关于数据库问题 高手请进!! 静态成员变量是全局变量吗?我能够在一个模块的几个不同文件中声明同名的静态成员变量吗? 一个奇怪的问题——ADO连接数据库 还是文件上传的问题~~ 怎样取得水晶报表的总页数? 现在还有多少在做lotus开发的程序员啊?有没前途,这东西? 用VB怎样调用SQL的计划任务 Help!Help!关于在application中(不是applet)用MediaTracker读图片的问题,高分酬谢。 请高手指点高程软件工程部分哪些书比较好啊! 当程序与远程数据库服务器建立连接后断网了,怎么能让程序自动再建立连接?谢谢 关于tatabto控件的问题!! 请问怎么样让NetMeeting ActiveX 控件自动接受呼叫? 在网关上修改通过的数据包,要求增添一些数据,请问大家有什么方法,要注意什么问题? 我原来有个ucap.jar包,把它拷到和notes.jar包同一个目录,代理中import不进来。请问各位大虾要不要设置classpath,怎么设置? 流场的可视化 这样的模板为什么不工作?? 请问这是什么错误!!各位帮我解决一下! 请问怎么样让NetMeeting ActiveX 控件自动接受呼叫?帮帮小妹吧 hellogzz,我就这80分,给你了 请问怎么样让NetMeeting ActiveX 控件自动接受呼叫? 有关form的菜菜问题,求助!!! 在存储过程中如何进行字符的运算 如何从表中随机选择一条记录? ?急救,在线等候!delphi怎么实现可以在word里面通用的报表??高分 Norton 服务器版怎么样?是否服务器升级病毒库后客户端可以从服务器上直接升级呢? 如何采用触发的方式接受串口消息,并将消息内容转化成字符串型? 各位高手,如何针对不同尺寸和分辨率的屏幕设计软件界面? 我ADVGRID6的控件组,在DLEPH7下通不过,总是说缺.PAS文件,其实它已经存在!为什么... 重分悬赏2000PROFESSION下配置PHP+MYSQL的方法。 关于editmask 请教关于串口控件——SPCOMM的简单问题 设计时数据模块突然无法打开,而运行时也报“无法连接sql server或网络连接失败”怎么办? 图形重绘的问题 关于对象字段的问题,up有分 做VC程序员半年来的感受和一年来的经历 CFile 请问如何使下面的窗口得不到焦点 其实我觉得这个社会上还是缺人才的。 CB编译错误谁能解决?(100分) c#中定义一个未知类型怎么做? 关于代理的疑难问题? 100分问一个天气预报的问题。 急!~~谁知道如何屏蔽网页中RealPlayer控件的右键菜单?哪位大虾回答对了马上给分!! 怎么将对话框Dialog显示在窗口最顶层,而不管有没有焦点? CB编译错误谁能解决?(100分) 帮忙设计一下,急! 如何把数据导入数据库 用过ibbs的及未用过的请看: 潘基文称涉日本历史认识问题发言“没有普京与伊朗总统通电话探讨用政治外交手叙利亚反对派称军方大部分已从指挥总部芬兰央行行长:欧洲已度过最艰难时期朝韩成立共同委员会协调开城工业园运营澳大利亚墨尔本三度当选世界最宜居城市匈牙利决定重开驻智利大使馆美发射一个疑为间谍卫星的航天器加拿大称不具备参与军事打击叙利亚的能威尼斯电影节主席看好中国电影市场金狮奖评委集体亮相 大师贝尔托卢奇获金正恩观看朝鲜男足决赛 与冠军队合影最后一批埃塞俄比亚犹太人返回以色列纽约时报记者向李娜道歉 承认错误翻译中国驻俄大使:中俄关系春华秋实 经济澳大利亚墨尔本三度当选世界最宜居城市北京警方:新快报记者刘某涉嫌造谣传谣新加坡总理李显龙今起对中国进行正式访苹果大量工程师对总裁库克不满而另寻高美军F-35B进行夜间起降测试 酷似中国多项空间数据成果向社会开放快船总经理:道森是一名赢家10亿亏损恐只是噩梦开始,细数美团巨国米仍不放弃追求奥巴梅扬英国豪迈旗下Sensorex发布工业不做死就不会。。真想总是难以接受的越狱再撕逼:太极越狱状告PP助手“抄天猫服务新标准或预示新增长点全天只有一位股民来开户 牛市就此结束理想的书店城市物种日历:6月26日 双叉犀金龟不可不知:2015年中国最可能发生的土豆馒头都造出来了,粮食真的不够吃了紫苏黄骨鱼汤熊孩子的校园暴力,这5个国家有啥办法网友:3个韩国人想打我 大家猜猜我咋谁导演了今日的“千股大屠杀”?蒜苗炒腊肠投顾雷林川:混改大幕或将拉开,银行股美军十分忌惮中国的6张照片曝光 个个股灾之后,大盘会下探至多少点寻支撑?
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘