【问题标题】:textbox only for integer in window application [duplicate]文本框仅适用于窗口应用程序中的整数[重复]
【发布时间】:2014-01-22 15:42:12
【问题描述】:

我有一个 Windows 应用程序,其中有一个登录表单和注册表单。 在注册表中有4个textboxes,其中一个用于获取用户联系号码(手机号码),其中只允许使用数字。 我希望用户只能输入 integer 数字而不是 char 就像在 asp 应用程序中一样,使用 ajax textfilter 我们限制用户只能输入整数。

是否存在这种类型的功能,以便 Windows 应用程序可以限制用户?

【问题讨论】:

标签: c# windows winforms textbox


【解决方案1】:

1)您可以处理TextBoxTextChanged 事件,并确保TextBox 中除了数字(0-9)之外没有显示任何键。
您可以使用Regex 来检查文本是否包含字母。

另一个选项是在处理文本之前验证文本输入,如果它包含数字以外的字符,向用户发出警告并允许他更改TextBox的文本。

     private void Text_Changed(object sender, EventArgs e )
     {
        if(!char.isDigit(textBox1.Text[textBox1.Text.Length-1]))
        {
             string temp = string.SubString(textBox1.Text, 0, textBox1.Text.Length-1) ;
             textBox1.Text = temp ; 
        }
     } 

工作:- 每次文本更改时,它都会检查添加的最后一个字符,如果不是数字,则不显示。
例如,如果在输入 971 后我输入 r,则 if 条件变为真,TextBoxText 字段将文本重置为 971 并且不显示“r”。

2)否则,您可以使用MaskedTextBox 将 maskedTextBox 的 masked 属性更改为 Digits,如下所示:-

查看以下链接:
http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox(v=vs.110).aspx
http://www.codeproject.com/Tips/666932/Using-Masked-TextBox-in-NET
http://www.codeproject.com/Articles/1534/Masked-C-TextBox-Control

3)OPTION-3:- 你可以从TextBox类派生后创建自定义控件。
http://msdn.microsoft.com/en-us/library/ms229644(v=vs.90).aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 2012-10-07
    • 2011-05-28
    • 2019-01-04
    • 2010-09-16
    相关资源
    最近更新 更多