iceman 发表于 2012-5-7 10:53:00

通过继承方式给 TextField 添加附加功能

TX Text Control .NET for Windows Forms TextField 类提供了丰富的功能供用户使用,例如通过TextField.Editable 和 TextField.Deleteable 属性控制 TextField 是否可以改变。
在一些用例中,TextField 功能需要扩展。例如发票或者报价单中的自动校验功能。或者只允许输入数字、字母的 TextField。
下面这个例子展示了怎样实现固定长度的 TextField。如果输入值不够长,将以“.”或者“X”填充。


下面分步介绍实现过程:
1.继承 TextField :public class SpecialTextField : TXTextControl.TextField2.构造函数由四个参数组成:
public SpecialTextField(TXTextControl.TextControl textControl,string text,int maxLength,char fillChar)分别为:
textControl:目标 TextControl,我们需要在这个参数上添加事件。
text :textField 初始化字符串。
maxLength:textField 最大长度。
fillChar:填充字符。
给 textControl 添加以下两个事件:_specialTX.TextFieldLeft += new TXTextControl.TextFieldEventHandler(_specialTX_TextFieldLeft);
_specialTX.TextFieldChanged += new TXTextControl.TextFieldEventHandler(_specialTX_TextFieldChanged);以上事件在光标离开 TextField 或 TextField 文本值更改时触发,在以上事件中,调用以下方法:private void CleanTextField(TXTextControl.TextField TextField)
      {
            if (TextField.Length < _specialMaxLength)
            {
                TextField.Text += new String(_specialFillChar, _specialMaxLength - TextField.Text.Length);
            }
            else if (TextField.Length > _specialMaxLength)
            {
                TextField.Text = TextField.Text.Remove(TextField.Text.Length - 1, 1);
            }
      }3.如果TextField 的文本长度小于最大长度,空缺部分将由fillChar 填充。
4.Demo 下载:
测试环境:TX Text Control 17.0 &amp;&amp; VS 2010
页: [1]
查看完整版本: 通过继承方式给 TextField 添加附加功能