6

如何在 win 表单文本框中放置掩码,以便它只允许数字?以及它如何适用于其他掩码数据、电话拉链等。

我正在使用 Visual Studio 2008 C#

谢谢。

4

5 回答 5

5

您可以使用 MaskedTextBox 控件

http://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox.aspx

于 2010-02-14T01:56:47.073 回答
3

您想阻止不允许的输入或在可以继续之前验证输入吗?

前者可能会使用户在按键时感到困惑,但没有任何反应。通常最好显示他们的按键但显示输入当前无效的警告。例如,设置屏蔽电子邮件地址正则表达式可能也相当复杂。

查看ErrorProvider以允许用户键入他们想要的内容,但在键入时显示警告。

对于仅允许数字的文本框的第一个建议,您可能还需要考虑NumericUpDown

于 2010-02-14T01:57:22.983 回答
0

通过不允许任何不需要的字符来控制用户的按键事件以屏蔽输入。

只允许带小数的数字:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
    {
        // allows 0-9, backspace, and decimal
        if (((e.KeyChar < 48 || e.KeyChar > 57) && e.KeyChar != 8 && e.KeyChar != 46))
        {
            e.Handled = true;
            return;
        }

        // checks to make sure only 1 decimal is allowed
        if (e.KeyChar == 46)
        {
            if ((sender as TextBox).Text.IndexOf(e.KeyChar) != -1)
                e.Handled = true;
        }
    }

只允许电话号码值:

private void txtPhone_KeyPress(object sender, KeyPressEventArgs e)
{
     if (e.KeyChar >= '0' && e.KeyChar <= '9') return;
     if (e.KeyChar == '+' || e.KeyChar == '-') return;
     if (e.KeyChar == 8) return;
     e.Handled = true;

}
于 2016-05-19T22:24:30.197 回答
-1

使用 Mask Text 框并分配 MasktextboxId.Mask。

如果你想使用文本框,那么你必须为它写正则表达式

于 2014-11-21T07:54:16.033 回答
-1

如上所述,使用MaskedTextBox

使用ErrorProvider也是值得的。

于 2012-06-14T05:09:32.180 回答