在我的程序中,我有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();
}
}
答案 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。
希望它有所帮助。