使用拆分控件 | 回车缩放编辑框 | custom 控件使用指南
//拆分控件
//使用拆分控件: https://www.aardio.com/zh-cn/docs/library-guide/std/win/ui/ctrl/splitter.html
//回车缩放编辑框: https://www.aardio.com/zh-cn/docs/examples/Windows/Edit/onOk.html
import win.ui;
/*DSG{{*/
var winform = win.form(text="使用拆分条(splitter)控件在窗口上拆分多个控件";right=801;bottom=486)
winform.add(
custom={cls="custom";text="自定义控件";left=214;top=8;right=791;bottom=475;db=1;dl=1;dr=1;dt=1;z=3};
edit={cls="edit";text="edit";left=4;top=8;right=204;bottom=194;aw=1;db=1;dl=1;dt=1;edge=1;multiline=1;z=1};
edit2={cls="edit";text="edit";left=4;top=205;right=204;bottom=475;aw=1;db=1;dl=1;dt=1;edge=1;multiline=1;z=4};
splitterHorz={cls="splitter";left=5;top=197;right=204;bottom=202;dl=1;frame=1;horz=1;z=5};
splitterVert={cls="splitter";left=204;top=8;right=212;bottom=475;db=1;dl=1;dt=1;frame=1;z=2}
)
/*}}*/
//指定需要拆分的控件(拖动拆分条可改变被拆分控件的大小)
winform.splitterHorz.split(winform.edit,winform.edit2);
/*
指定需要拆分的控件,参数也可以指定包含多个控件的数组。
窗口改变大小时拆分条默认会自动吸附前后第 1 个控件(单个控件参数或数组参数中的第 1 个成员),
数组中其他控件可通过启用自适应大小(创建控件参数表中的`ah`,`aw`属性)设置是否允许调整大小。
并应正确设置所有控件的`固定边距`属性以保证控件外边距不变。
*/
winform.splitterVert.split( [
winform.edit,winform.edit2,winform.splitterHorz //数组中的控件须位于拆分条同一侧
],winform.custom )
winform.splitterVert.ltMin = 20; //左边控件最小宽度
winform.splitterVert.rbMin = 500; //右边控件最小宽度
/*
需要特别注意拆分条本身应正确设置固定边距属性,
否则窗体缩放后拆分条所在位置与被拆分控件的相对位置变化过大,
这会导致拆分控件无法保持吸附被拆分控件又保持同侧多个被拆分控件相对位置而错乱。
我们也可以将多个控件放到子窗体里,然后通过 custom 控件加载。
这样就只要拆分 custom 这个容器控件即可。
custom 控件使用指南: https://www.aardio.com/zh-cn/docs/library-guide/std/win/ui/ctrl/custom.html
*/
winform.custom.loadForm("~/examples/plus/disabledText.aardio")
//拆分条拖拽移动到新位置时触发此事件,l,t,r,b 分别为拆分条当前左、上、右、下坐标。
winform.splitterVert.onSplitterMoved = function(l,t,r,b){
}
/*
如果被拆分的是 listbox 控件,
要注意 listbox 反复改变高度会因为自动适应项目行高而越来越小。
可以考虑将 listbox 控件放入 custom 容器再拆分。
*/
winform.show()
win.loopMessage();
Markdown 格式