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

在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编写ASP的ActiveX 用Delphi编写CGI程序(五) 用Delphi编写CGI程序返回图象 用Delphi程序获取拨号连接的动态IP地址 用Delphi创建Internet快捷方式 查询语句的优化 在ORACLE 8i中进入SQLPLUS登陆后出现ORA-12547:TNS:丢失联系错误;进入DBA后连接数据库时根本没响应。 请教。。。。。 如何编程得知某一个dll中有哪些类? 怎样自己定义API函数的啊? 如何将2000下命令行的命令保存下来 下载下来的.dll文件的在添加到自定义工具箱时出现以下提示:“反序列化对象的状态不足。需要详细信息” 怎样在JB中新建一个MIDlet啊? 这个API函数用VB.net怎么声明?(在线等) 唐朝科举制的完善与哪些皇帝有关?他们分别做了哪些贡 选择:-How long does it take How long does it take It How long does it take?It how long does it ---you t ,比如"解""答" 求初一数学各种基本题型的解题格式 短篇的名人读书故事 1)y=sin(x-pai/12)cos(x-pa 美电视台脱口秀节目“杀中国人言论”被阿尔及利亚军队在边境地区查获大批武器杭州西湖景区将开发APP平台掌上西湖人大信访局原副局长辞职当律师 称不是北京网监调查“查开房”网 律师建议警华商谢国民:从未想过能登城楼看阅兵维吾尔族观礼者:要将阅兵见闻带回天山抗战老兵相聚南京:救亡救国是匹夫之责刘延东会见联合国秘书长潘基文和英国首马来西亚海域翻船事故造成至少14人死我的女仆是僵尸五魂破天乌衣天下流星天王三国之天书系统圣诞村邮局旅游东崖云舫旅游回香阁旅游小天台旅游小花台旅游
备案号:鲁ICP备13029499号-2 说三道四 www.s3d4.cn 说三道四技术文摘