C#验证期间

时间:2012-12-03 08:04:19

标签: c# visual-studio-2010 validation

我想问一下是否有人知道如何限制文本框允许的时间。我正在使用C#Visual Studio 2010。

我的问题是我需要找到验证码,以确保用户的文本框Middle Initial只允许一个句点。如果用户键入另一个句点,则该句点将不会显示在文本框中。不需要任何错误消息。示例是仅接受字母的验证代码。以下是此示例的代码:

private void txtFirstName_KeyPress(object sender, KeyPressEventArgs e)
        {
            byte num = Convert.ToByte(e.KeyChar);

        if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32))
        {

        }

        else if (num == 13)
        {
            e.Handled = true;
            SendKeys.Send("{Tab}");
        }
        else
        {
            e.Handled = true;
        }

    }

我目前为txtboxMI提供以下代码:

private void txtMI_KeyPress(object sender, KeyPressEventArgs e)
{
    byte num = Convert.ToByte(e.KeyChar);

    if ((num >= 65 && num <= 90) || (num >= 97 && num <= 122) || (num == 8) || (num == 32))
    {

    }
    else if (num == 13)
    {
        e.Handled = true;
        SendKeys.Send("{Tab}");
    }
    else
    {
        e.Handled = true;
    }
}

2 个答案:

答案 0 :(得分:0)

你必须把它作为服务器端吗?

您可以使用regular expression validator

[a-zA-Z_-。]应该给你你想要的东西。

答案 1 :(得分:0)

试试这个:

var txt = (TextBox)sender;
if ((e.KeyChar >= 'A' && e.KeyChar <= 'Z') || (e.KeyChar >= 'a' && e.KeyChar <= 'z') || e.KeyChar == 8 || e.KeyChar == 32) {
} else if (txt.Text.Contains('.') && e.KeyChar == '.') {
    e.Handled = true;
} else if (e.KeyChar == '\t') {
    e.Handled = true;
    SendKeys.Send("{Tab}");
}