限制TextBox中的长度和输入掩码

时间:2012-11-29 19:46:37

标签: c# winforms validation

我需要在C#中限制TextBox中允许的位数。

我还需要创建验证,使其类似于手机号码,这意味着它必须以07开头并且总共有11位数字。

有什么建议吗?

2 个答案:

答案 0 :(得分:1)

您可以使用MaskedTextBox来提供受控输入值。 “07”后跟11位数字掩码为\0\700000000000

答案 1 :(得分:0)

您没有任何代码作为示例,因此,我会输入我的。

要限制字符数,您应键入以下代码:

private bool Validation()
{
    if (textBox.Text.Length != 11)
    {
        MessageBox.Show("Text in textBox must have 11 characters", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox.Focus();
        return false;
    }
    return true;
}

如果您希望textBox中的文本以“07”开头,则应键入以下代码:

private bool Validation()
{
    string s = textBox.Text;
    string s1 = s.Substring(0, 1); // First number in brackets is from wich position you want to cut string, the second number is how many characters you want to cut
    string s2 = s.Substring(1, 1);
    if (s1 != "0" || s2 != "7")
    {
        MessageBox.Show("Number must begin with 07", "Error", MessageBoxButtons.OK, MessageBoxIcon.Warning);
        textBox.Focus();
        return false;
    }
    return true;
}

您可以在一个source方法中合并它,您可以随意调用它。如果要调用某种方法(例如,当您单击“接受”按钮时),只需键入以下代码:

private void buttonAccept_Click(object sender, EventArgs e)
{
    if (Validation() == false) return;
}