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

TX Text Control .NET for Windows Forms TextField 类提供了丰富的功能供用户使用,例如通过TextField.Editable 和 TextField.Deleteable 属性控制 TextField 是否可以改变。

发布于 2012/11/16 00:00

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

关于葡萄城

葡萄城是专业的软件开发技术和低代码平台提供商,以“赋能开发者”为使命,致力于通过表格控件、低代码和BI等各类软件开发工具和服务,一站式满足开发者需求,帮助企业提升开发效率并创新开发模式。葡萄城开发技术始于1980年,40余年来始终聚焦软件开发技术,有深厚的技术积累和丰富的产品线。是业界能够同时赋能软件开发和低代码开发的企业。凭借过硬的产品能力、活跃的用户社区和丰富的伙伴生态,与超过3000家合作伙伴紧密合作,产品广泛应用于信息和软件服务、制造、交通运输、建筑、金融、能源、教育、公共管理等支柱产业。

推荐相关案例
推荐相关资源
关注微信
葡萄城社区二维码

关注“葡萄城社区”

加微信获取技术资讯

加微信获取技术资讯

想了解更多信息,请联系我们, 随时掌握技术资源和产品动态