相对之前的版本:
优化了获取控件标记属性的方式,之前版本是求助帖:
里面@qq793359277提供的方式,通过内存搜索来取出用户设置的标记属性,需要遍历所有内存,可能会有效率问题,并且有个bug,如果容器控件包含有子控件,就不能成功获取到了
当前版本已优化和修复
@mgfz @784326742 @rectdbszy
——————————————————————————————————
作用:通过易语言设计窗口的属性指定布局方式,让控件动态适应窗口大小的改变。
使用很简单,一行代码:
除此之外,就是在易语言界面设计器上直观给需要布局的控件指定标记属性
在C# WinForm中,可以给控件指定一个Anchor属性
效果就是当父窗口的尺寸改变了,让子控件移动,或改变大小
参考:https://blog.csdn.net/shunhua19881987/article/details/122553926
Anchor属性
正如名称暗示的那样,这个属性迫使控件将其自身定位在父窗体或父控件中的某个相对或绝对位置。这个属性有四个可以开启或关闭的值:
Top——表示控件中与父窗体(或父控件)相关的顶部应该保持固定。
Bottom——表示控件中与父窗体(或父控件)相关的底边应该保持固定。
Left——表示控件中与父窗体(或父控件)相关的左边缘应该保持固定。
Right——表示控件中与父窗体(或父控件)相关的右边缘应该保持固定。
windows窗口坐标系,原点在左上角,所以很自然的,Anchor Left和Top成为了默认值
如果指定Right或Bottom,父窗口尺寸变化时,控件会移动,使控件右边或底边与父窗口的边缘距离保持不变(可以同时指定)
如果同时指定Left和Right,或Top和Botton,父窗口尺寸变化时,控件会改变大小,使控件左边和右边,或顶边和底边与父窗口边缘的距离保持不变(4个都可以同时指定,或随意组合)
如果一个都不指定,控件相对父窗口的中心点保持不动
易语言实现:
调用方法只有一行代码,每个控件的Ancho属性,通过易语言控件的标记属性指定。
识别符号文本:<>AVO
<>AV可以象形的理解成箭头符号,<就是指向左边,就相当于设置了Anchor Left,>AV同样的道理。
Winfrom中Anchor.Left和Anchor.Top是默认值,但是易语言默认标记是空白的。
因为我们大多是希望相对左上保持不变,所有希望当没有指定任何符号时,“<A”是默认值。
为了方便,当不包含<>AVO任何一个符号时,默认等效于“<A”,而不是一个都不选,这样的话,就需要另一个符号来表示一个都不选:大写的O
5个符号可以随意组合,
水平:
<——控件左边保持不变
>——控件右边保持不变
<>——控件左边和右边保持不变(控件宽度会改变)
垂直:
A——控件顶部保持不变
V——控件底部保持不变
AV——控件顶部和底部保持不变(控件高度会改变)
O:可能同时影响水平和垂直,相对父窗口中心线固定
如果单独指定了O,控件的左边和顶边相对窗口的中心点固定
如果指定了O和其他符号,在没有指定符号的维度(水平,垂直)上,才生效,所以说O优先级最低。比如:指定了O<,水平方向,控件左边保持不变,但垂直方向,相对窗口垂直方向上的中心线固定。
如果同时设置了<AO,O没有效果,因为<和A已经覆盖了水平和垂直两个方向,O优先级最低
符号的顺序没有关系,内部使用寻找文本来检索符号
上面截图指定的符号说明:
下载:
实现WinForm_Anchor.e
(20.06 KB, 下载次数: 482)
|