c# textbox 限制输入长度大于等于2小于等于10(汉子算两个长度)且不能ctrl+v和右键粘贴

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c# textbox 限制输入长度大于等于2小于等于10(汉子算两个长度)且不能ctrl+v和右键粘贴相关的知识,希望对你有一定的参考价值。

 也可以设置控件的最大字符值
 可以判断长度
 string strText = this.textBox2.Text.Trim();
            if (strText == "") return;
            if (strText.Length < 2 || strText.Length > 10)
            
                MessageBox.Show("输入的字符范围必须≥2且≤10");
                this.textBox2.Focus();
                return;
            
  //限制右键粘贴
 继承TextBox,重载一下它的方法:
protected override void WndProc(ref Message m)
 
   if(m.Msg != 粘贴事件的值)
   
    base.WndProc (ref m);
   
 

希望对你有帮助

追问

这中文也是占的一个字符吧

追答

中文占2个字符

追问

你直接用text.length 中文是一个字符,我要的是按字节算长度

参考技术A 判断语句判断一下就可以了追问

等于没说

追答

0.0 哦 要代码啊 早说啊 !
判断长度可以用js 判断 不能复制粘贴的js 应该也能完成的

本回答被提问者采纳

WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数

正则:^(0.d+|[1-9][0-9]|1)$

TextBox绑定正则验证

<TextBox x:Name="txb"   MaxLength="6" Margin="1 0 0 0"  Width="40" >
    <TextBox.Text>
        <Binding Path="Opacity" ValidatesOnExceptions="True" ValidatesOnDataErrors="True" StringFormat="F2"            
          Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"                              >
            <Binding.ValidationRules>
                <shared1:InventoryValidationRule  InventoryPattern="^(0.d+|[1-9][0-9]|1)$"/>
            </Binding.ValidationRules>
       </Binding>
    </TextBox.Text>
</TextBox>

 

用到的InventoryValidationRule类:

 public class InventoryValidationRule : ValidationRule
    {
        #region Properties

        public string InventoryPattern { get; set; }

        #endregion Properties

        #region Methods

        public override ValidationResult Validate(
                  object value, CultureInfo cultureInfo)
        {
            if (InventoryPattern == null)
                return ValidationResult.ValidResult;

            if (!(value is string))
                return new ValidationResult(false,
               "Inventory should be a comma separated list of model numbers as a string");

            string[] pieces = value.ToString().Split(‘,‘);
            Regex m_RegEx = new Regex(InventoryPattern);

            foreach (string item in pieces)
            {
                Match match = m_RegEx.Match(item);
                if (match == null || match == Match.Empty)
                    return new ValidationResult(
                      false, "Invalid input format");
            }

            return ValidationResult.ValidResult;
        }

        #endregion Methods
    }













































以上是关于c# textbox 限制输入长度大于等于2小于等于10(汉子算两个长度)且不能ctrl+v和右键粘贴的主要内容,如果未能解决你的问题,请参考以下文章

c# 的WinForm 中 textbox内如何限制只输入为0-100之间的数字?

WPF TextBox 正则验证 大于等于0 小于等于1 的两位小数

C#开发wince平台下的winform程序,textbox的keypress事件无法触发,本意是想限制textbox只能输入数字。

acm 输入一个字符串,长度小于等于200,然后将数组逆置输出.

C#如何让TEXTBOX只能输入英文状态下的数字并且限制位数

WPF TextBox按字节长度限制输入