ax 默认控件排列规则
2008-07-20 10:49
141 查看
1. 容器根据内部控件数和columns数计算出行数
2. 从上到下,从左到右添加控件
如果columns为1并且width mode设置为column width,则该控件缩放时占据整个容器宽度
如果columns大于1,则最后一个列的控件占据剩余宽度,其他列仅相当于auto,不会变,这是我们要写代码避免的,比方说我们需要均匀分割各列
细节上还有几点要注意的
1. 将自己的resize代码写一个过程,比方说myResize
2. 在formrun的run方法中首次进行调用
3. 然后覆盖formrun的resize事件中添加myresize调用
4. 在计算宽度时要减去容器的verticalSpacingValue,根据列数-1(默认是控件按vertical排列的)
currencyGrid.width((currencyWireGroup.widthValue()-currencyWireGroup.verticalSpacingValue())/2);
有空的时候再仔细想想这些过程是否可以更智能些,目前,这个函数可以减少我们的工作
//class ControlHelper
static void resizeHelper(FormGroupControl gc)
{
int i;
;
for(i=1;i<=gc.controlCount();i++){
gc.controlNum(i).width((gc.widthValue()-gc.verticalSpacingValue()*gc.columns()-1)/gc.columns());
}
}
调用
只需要传入要均匀分隔的组变量即可
void myResize()
{
;
ControlHelper::resizeHelper(currencyWireGroup);
ControlHelper::resizeHelper(adjustSEttingGroup);
}
效果
更细节的讨论在这里
http://www.qiuhao.com/dispbbs.asp?boardid=2&id=9054&star=1#38752
良好实践
1.按默认的控件排列规则
2. 总是设定width 为column width
3. 在复杂布局时,大量使用group
2. 从上到下,从左到右添加控件
如果columns为1并且width mode设置为column width,则该控件缩放时占据整个容器宽度
如果columns大于1,则最后一个列的控件占据剩余宽度,其他列仅相当于auto,不会变,这是我们要写代码避免的,比方说我们需要均匀分割各列
细节上还有几点要注意的
1. 将自己的resize代码写一个过程,比方说myResize
2. 在formrun的run方法中首次进行调用
3. 然后覆盖formrun的resize事件中添加myresize调用
4. 在计算宽度时要减去容器的verticalSpacingValue,根据列数-1(默认是控件按vertical排列的)
currencyGrid.width((currencyWireGroup.widthValue()-currencyWireGroup.verticalSpacingValue())/2);
有空的时候再仔细想想这些过程是否可以更智能些,目前,这个函数可以减少我们的工作
//class ControlHelper
static void resizeHelper(FormGroupControl gc)
{
int i;
;
for(i=1;i<=gc.controlCount();i++){
gc.controlNum(i).width((gc.widthValue()-gc.verticalSpacingValue()*gc.columns()-1)/gc.columns());
}
}
调用
只需要传入要均匀分隔的组变量即可
void myResize()
{
;
ControlHelper::resizeHelper(currencyWireGroup);
ControlHelper::resizeHelper(adjustSEttingGroup);
}
效果
更细节的讨论在这里
http://www.qiuhao.com/dispbbs.asp?boardid=2&id=9054&star=1#38752
良好实践
1.按默认的控件排列规则
2. 总是设定width 为column width
3. 在复杂布局时,大量使用group
相关文章推荐
- Win7系统如何让窗口不智能排列屏蔽这种默认行为
- mfc 设置控件Z轴顺序 默认按钮响应
- 关于 $cordovaDatePicker 默认时间控件样式的问题
- easyui 日期控件默认当前时间
- 一步步学习微软InfoPath2010和SP2010--第三章节--表单设计基础:处理InfoPath布局、控件和视图(7)--添加含规则的提交按钮到Flight Delay表单
- Google Map API使用详解(十四)——使用Google Map提供的默认控件
- VS2013 MFC checkbox 控件默认选中
- WPF中不规则窗体与WindowsFormsHost控件兼容问题的解决方法
- 关于页面中回车键默认触发某个控件按钮事件的问题(DefaultButton)
- 控件命名规则
- Android瀑布流照片墙实现,体验不规则排列的美感
- 如何去掉TabControl控件默认添加的TabPage
- 利用Gridview 控件提供的默认编辑,删除操作
- Android Studio使用Button等控件的英文内容字符串默认大写
- 为网页设定默认按钮 “form1”的 DefaultButton 必须是 IButtonControl 类型的控件的 ID
- WPF DataGrid 控件默认空白行无法显示
- 【转】Delphi7中默认没有安装的官方控件
- drools规则出现中文验证 与jvm 默认编码(The default charset is determined during virtual-machine)的关系很重要
- RS开发日期提示控件默认为昨天之进阶篇
- WebBrowser控件禁用超链接转向、脚本错误提示、默认右键菜单和快捷键