退休了,有的是时间,今天开始来这里晒晒多年来使用的自定义控件。
EditBox
山谷居士的EditBox,是应用在WinForm中的文本编辑控件。它由Control派生,内嵌一个用于文本的编辑TextBox派生类,和一个用作按钮的Control派生类。EditBox可根据编辑的数据类型对录入行为进行控制,过滤不正确的键盘录入的字符,或把键盘录入的字符转化为可接受的字符,例如在数字录入时,全角的数字字符被转化为半角的字符并接受,用户不需要切换输入法,极大地方便了用户。对于枚举类型和日期类型数据,EditBox可显示下拉按钮,用户可在下拉列表中选取数据。
主要的属性:
1. ValueType,数据类型为type,用于读取或设置要编辑数据的类型,可以设置ValueType为string、所有的数值类型、日期时间类型或枚举类型。设计时可以在属性编辑器中直接录入或在下拉框中选取。枚举类型,要录入全名称,包括命名空间、嵌套的类名称。对于刚刚定义的枚举类型,需要生成或运行一次方可录入该枚举类型。
2. Format,数据类型为string, 用于读取或设置数据的显示格式化字符串。可以根据ValueType录入相应的格式化字符串,或在格式化字符串会话框中选取。当ValueType为DateTime类型,需要设置Format,以便确定控件要录入的是日期,还是时间,或者是日期与时间的组合。
3. Text,数据类型为string, 用于在设计阶段读取或设置控件的显示文本。在运行阶段应使用Value来设置或读取控件的值。
4. Value,数据类型为object,运行时用于读取或设置控件的值。设置Value,不管源数据是何种类型以及数据的精度,都被转化为ValueType属性中指定的数据类型和Format属性中指定的精度。
5. ButtonStyle,数据类型为ButtonStyle,用于读取保存到内部Value的值之前引发该事件。程序可以通过修改参数中的Cancel属性为true,阻止对Value的修改。也可以修改参数中的NewValue属性的值代替控件分析编辑文本得到新值。
6. DropDownBox,数据类型为ToolStripDropDown,用于获取或设置当ButtonStyle为Triangle时使用的下拉弹出框。当ValueType为枚举类型或日期类型时,如果不设置本属性,系统会使用适当的下拉框。
主要的事件:
1. OnValueChanged,控件修改了Value的值以后引发引发该事件,程序通过Text属性或Value属性改变控件中的文本不引发该事件。
2. OnButtonClick,用鼠标点击按钮或按Ctrol+Douwn键时引发该事件,可以利用该事件显示一个自定义的会话框,与用户交互后再通过SetEditText方法把字符串写入控件。