限制texbox不接受数字格式为(" 010")

时间:2017-02-16 01:48:08

标签: c# validation textbox

在我的程序中,我有texboxes,我输入了学生的成绩。但我想限制用户不要用010或020这样的格式数字。另外,如果用户数字1并更改为另一个文本框,则自动将该数字(1)更改为1,0。

我尝试了这个,但当它进入第二个条件时,它给了我一个错误。

private void txt3Bimestre_Validated(object sender, EventArgs e)
{
    if (txt3Bimestre.Text[0].ToString().Equals("1") ||
        txt3Bimestre.Text[0].ToString().Equals("2") ||
        txt3Bimestre.Text[0].ToString().Equals("3") ||
        txt3Bimestre.Text[0].ToString().Equals("4") ||
        txt3Bimestre.Text[0].ToString().Equals("5") ||
        txt3Bimestre.Text[0].ToString().Equals("6") ||
        txt3Bimestre.Text[0].ToString().Equals("7") ||
        txt3Bimestre.Text[0].ToString().Equals("8") ||
        txt3Bimestre.Text[0].ToString().Equals("9"))
    {

        if (txt3Bimestre.Text[1].ToString().Equals(",") || txt3Bimestre.Text.Substring(0, 2) == "10")
        {
        }
    }
    else
    {
        MessageBox.Show("Formato Inválido", "Alertaa", MessageBoxButtons.OK, MessageBoxIcon.Error);
        txt3Bimestre.Clear();
        txt3Bimestre.Focus();
    }
}

1 个答案:

答案 0 :(得分:0)

这里的问题是你试图强迫用户不要在文本框中输入数据。

我建议你做的是让用户输入他/她想要的东西,在离开文本框或执行另一个事件后,如果数据是有效格式则测试数据或向用户显示关于他/她的“错误”的警告”

例如:

double value;

bool ok = double.TryParse(txt3Bimestre.Text, out value))

if (ok)
{
    txt3Bimestre.Text = value.ToString("0.00");
}
else
{
    MessageBox.Show("Formato Inválido", "Alerta", MessageBoxButtons.OK, MessageBoxIcon.Error);
    txt3Bimestre.Clear();
    txt3Bimestre.Focus();
}

如果您遇到问题,或者。对于小数(与小数分隔符有文化相关的差异),请查找CultureInfo.InvariantCulture。

希望它有所帮助。