如何实现WPF TextBox按字节长度限制文本输入功能?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1104个文字,预计阅读时间需要5分钟。
前两天做项目时,由于页面没有限制TextBox的输入长度,导致后台直接报错,超出了数据库允许的最大长度。数据库的长度是按字节数计算的,不同编码格式下的汉字占用不同字节。所以,汉字可能会占用更多空间。
前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度。
数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我们用的是UTF8,一个汉字是3个字节,而默认的Default,一个汉字是2个字节。
TextBox有个MaxLength属性,但是这个属性是不太合乎要求的,因为这个长度,是限制了输入的长度,比如设置20,则无论是数字、字母、汉字最大的长度都是20个,但是,对于数据库来说,长度却不相同了,所以,不能使用这个属性。
为了,统一解决下这个问题,所以给TextBox写了附加属性。
一、想要的效果
用了附加属性,想达到一个什么效果呢,就是像设置MaxLength一样,一旦到了数据库的字节长度,就不再能输入了。
本文共计1104个文字,预计阅读时间需要5分钟。
前两天做项目时,由于页面没有限制TextBox的输入长度,导致后台直接报错,超出了数据库允许的最大长度。数据库的长度是按字节数计算的,不同编码格式下的汉字占用不同字节。所以,汉字可能会占用更多空间。
前两天做一个项目的时候,由于页面没有限制TextBox的输入长度,所以,后台直接报错了,超出数据库最大的长度。
数据库的长度是按照字节来计算的,而且不同的编码格式,汉字占用的字节长度又不相同,比如,我们用的是UTF8,一个汉字是3个字节,而默认的Default,一个汉字是2个字节。
TextBox有个MaxLength属性,但是这个属性是不太合乎要求的,因为这个长度,是限制了输入的长度,比如设置20,则无论是数字、字母、汉字最大的长度都是20个,但是,对于数据库来说,长度却不相同了,所以,不能使用这个属性。
为了,统一解决下这个问题,所以给TextBox写了附加属性。
一、想要的效果
用了附加属性,想达到一个什么效果呢,就是像设置MaxLength一样,一旦到了数据库的字节长度,就不再能输入了。

