看下面的动画, NumericUpDown 控件在被 Disable时, 其外观不正确, 该控件由两个子控件组成, 一个是继承自 TextBox的文本框, 另一个是实现上下箭头的button, 注意两个button被实现为同一个控件.
(本来是个GIF动画, 因为比较大, 1.5M, 所以不得不压缩成RAR放上来)
TextBox 外面有一个白色的框, 这个白色的框不是 NumericUpDown控件有意画出来的, 而是某个窗口的背景色, 所以白色只是个偶然, 从上面的动画中可以看出, 有时候是杂色, 拖动另一窗口在 Disable的NumericUpDown上面移动, 就可能会留下斑驳的杂色, 这无论如何也是一个bug.
|
文件: | asdf.rar |
大小: | 1316KB |
下载: | 下载 |
|
解决办法是在一个单独的 UIHelper类中用一个API来改变它在 Disable时的视觉外观:
编译通过:
csc /r:..\bin\nunit.framework.dll /t:library tmp.cs
使用:
在 Form类的 ctor函数中, 或在Form的Load事件中, 这样调用:
UIHelper.FixAllDisabledNumericUpDown(this);
会递归处理所有的子控件, 把所有 NumericUpDown及从 NumericUpDown派生的类都进行处理.
处理之后的 NumericUpDown控件, 与TextBox/ComboBox 控件一样在 Disable状态下有平滑一致的视觉外观.
阅读(690) | 评论(0) | 转发(0) |