开发笔记,记录点滴。
大多是在平时 WinForm 开发中遇到的一些小问题及个人建议的解决方案。
建议 wnDate 控件显示格式中 ShortYMDT 的分隔符号调整为/,即 yyyy/MM/dd,目前是用的短横线。
数据源列配置中数值类型的显示格式被同时应用在 EditMask 和 DisplayFormat,而实际上这两个属性设置格式是不一样的:编辑 EditMask 只支持 2 部分设置,DisplayFormat 显示时支持三部分设置,即 DisplayFormat 可以定义正数;负数;0 时的显示格式,而 EditMask 不支持 0 的设置,于是现在的框架限制了我们无法为 0 设置特殊的显示格式(比如:有数时我们想都显示两位小数,0 时有的情况需要显示为 0,有的情况需要显示成空白)。
注:有同学想出一个办法,设置格式如下:【##0.0#;-##0.0#;''】,注意最后面第三部门是空字符串,这样可以实现 0 的时候显示成空白,但仍无法实现两位小数列如是 0 的时候显示成 0。
更多说明请参考:http://xxb.lttc.cn/read-88.html
有些数值列在数据库设计中是 not null 的,这样我们在列配置中都设置了默认值 0,但如果用户就是把这个列清空怎么办呢?有的同学会在代码中处理:保存时如果有的列是 null 则赋值成 0,所以建议将 [允许为空] 的也配置在列配置信息中,在装配时不能为空的列设置以下属性:
(wnGridMain.Columns["WorkHours"].ColumnEdit as RepositoryItemTextEdit).AllowNullInput = DefaultBoolean.False;
选择项有:禁用排序、立即排序、延迟排序。如果延迟排序时,即使用户设置了排序规则再新增单据或修改列数据后也不会造成行位置乱跑。延迟排序需要设置如下:(同样适用于过滤操作)
gridView1.OptionsBehavior.ImmediateUpdateRowPosition = false;
5、数据验证不建议在 CellValueChanged 事件中处理既然是 Changed 事件说明数据已经改变,何不在改变前将非法内容拒之门外呢,请参考:http://xxb.lttc.cn/read-119.html