易语言资源网 - 做最全的易语言资源下载社区
精易论坛授权登录

窗口自适应布局:实现WinForm的Anchor效果   [复制链接]

    2023-03-07 15:59:46
    高级教程源码
    易语言资源网
    1919 次浏览
    来源链接

闲着无聊,实现了WinForm的Anchor效果

效果是让控件动态适应窗口大小的改变。

使用很简单,一行代码


在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同样的道理。

因为我们大多是希望相对左上保持不变,所有希望当没有指定任何符号时,“

O优先级最低,如果同时设置了

如果单独指定了O,控件的左边和顶边相对窗口的中心点对其

如果指定了O和其他符号,在没有指定符号的维度(水平,垂直)上,才生效,所以说O优先级最低。比如:指定了O<,水平方向,相对左边不改变,单垂直方向,相对窗口中心点对齐。

符号的顺序没有关系,内部使用寻找文本来检索符号

上面截图指定的符号说明:

已知bug:包含子控件的容器控件(分组框,选择夹),设置的标记符号没有效果(因为没有通过句柄获取到设置的标记)

感谢:@qq793359277

易语言组件的标记,能通过句柄获取到吗?

https://bbs.125.la/forum.php?mod=viewthread&tid=14766260

(出处: 精易论坛)

如果有更好的获取方法,就更好了



点我下载 (已有 75 次下载)

引用模块





引用支持库


源码文件名 支持库文件名 支持库标识
实现WinForm_Anchor (1).e 系统核心支持库 5.7 d09f2340818511d396f6aaf844c7e325
特殊功能支持库 3.1 A512548E76954B6E92C21055517615B0
扩展界面支持库一 2.0 27bb20fdd3e145e4bee3db39ddd6e64c


[错误报告]   上一篇:易高级XML解析支持库...     下一篇:超级列表框表格线行列边框线条颜色修改【非...