一个颜色控件的修正经历

Posted on 2007-01-09 15:01  X-阿土  阅读(600)  评论(2)    收藏  举报
在自己一个项目中需要用到颜色选择,刚好收藏了一个颜色控件,代码就一个CS文件,加一些脚本,就直接用上了.开头觉得简单,挺爽.用着突然发现问题了.而且问题多多.

1.一个页面加一个控件时没问题,加多个控件时选择好颜色后竟然没有返回颜色值.查了半天,原来有这样一段代码:
错误源码片段
分析了一下,原来是多个控件时都是同一ID值,晕倒.返回值都不知赋给哪个控件.于是做了一番修改.
修正后代码
每个控件都有一个唯一ID.搞定.多个控件没问题.
分析过程中还发现了另一个一直没注意到的做法.在showModiDialog方法中,将整个TextBox对象做为参数传入,这样在打开页面中就直接可以操作TextBox对象了.方便.如果你喜欢还可以将整个当前整个window对象一起传过去.呵..

2.此控件只能在运行时读取到选择的颜色值,而无法对其进行赋值或在编辑状态对其进行初始值.
原代码
本来简单的加入了一个set(_input.Text = value)方法,结果发现了另一个问题.在编辑状态下_input对象还没实例化,行不通.于是采用了另一种实现.
修改后的代码

成功解决了.

 3.之外,还增加了选中颜色后文本控件除了显示颜色值外,还将文本框底色改成选中的颜色.初始化颜色值时底色也随之改变.

附上修改后的可用源码
修正后的颜色控件












博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3