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

发布时间:2012/11/16 00:11 发布者:葡萄城产品团队

返回博客中心

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


下面分步介绍实现过程:
1.继承 TextField :

 
public class SpecialTextField : TXTextControl.TextField
复制代码

2.构造函数由四个参数组成:
publ

 
ic 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);
            }
        }
复制代码

环境:TX Text Control 17.0 && VS 2010

SpecialTextField.zip (40.54 K, 下载次数:26)

关于葡萄城

赋能开发者!葡萄城是专业的集开发工具、商业智能解决方案、低代码开发平台于一身的软件和服务提供商,为超过 75% 的全球财富 500 强企业提供服务。葡萄城专注控件软件领域30年,希望通过模块化的开发控件、灵活的低代码应用开发平台等一系列开发工具、解决方案和服务,帮助开发者快速响应复杂多变的业务需求,最大程度地发挥开发者的才智和潜能,让开发者的 IT 人生更从容更美好。

了解详情,请访问葡萄城官网