【问题标题】:MaskedTextBox Minimum/Maximum LengthsMaskedTextBox 最小/最大长度
【发布时间】:2011-02-02 15:30:53
【问题描述】:

我有一个蒙面文本框,需要在其上设置最小/最大长度。当满足这些条件时,按钮就会启用。

我正在考虑处理 TextChanged 事件以确定输入文本的长度并设置按钮启用值。

有更好的方法吗?

 btnOK.Enabled = txtDataEntry.Text.Length >= MinDataLength && txtDataEntry.Text.Length <= MaxDataLength;

【问题讨论】:

    标签: c# .net winforms .net-3.5 maskedtextbox


    【解决方案1】:

    哪种方法可能比您建议的更简单?

    myTextBox.Textchanged+=(s,o)=>{ myButton.Enabled = myTextBox.Length==10; };
    

    【讨论】:

    • 查看更新的问题。如何防止他们输入超过最大长度?
    • TextBox 中有一个 MaxLength 属性是为这种情况设计的 :)
    【解决方案2】:

    IMO TextChanged 事件是处理此功能条件的好地方。

    更新

    在 KeyPress 事件中这样做:

    maskedtxtbox.KeyPress => (s , ev ) { 
                        if(maskedtxtbox.Length > 9)
                        {
                           //This prevent from key to go to control
                           e.Handled =true;
                           button1.Enabled = true;
                        } 
                     };
    

    【讨论】:

    • 查看更新的问题。如何防止他们输入超过最大长度?
    • 它告诉操作系统密钥已被处理,并且需要进一步处理..(这是控制并绘制字符)。详情看这里msdn.microsoft.com/en-us/library/…
    • 问题在于长度总是 1,所以如果它的长度
    【解决方案3】:

    // 在你的 texbox valdating 事件中

        private void textBox4_Validating(object sender, CancelEventArgs e)
        {
            TextBox tb = sender as TextBox;
            if (tb != null)
            {
                int i=tb.Text.Length;
                //Set your desired minimumlength here '7'
                if (i<7)
                {
    
                    MessageBox.Show("Too short Password");
                    return;
    
                }
            }
            else
    
            e.Cancel = true;
        }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-02-29
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多