输入字符串的格式不正确发生在 c# 中
Input string was not in a correct format occurs in c#
private void txtbox_BattMmnt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back /*|| e.KeyChar == (char)5*/ || e.KeyChar == 46)
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only Numeric Value", "Error", MessageBoxButtons.OK);
}
double i=Convert.ToDouble(txtbox_BattMmnt.Text);
if (i >=2.9 || i <= 3.35)
{ e.Handled = false; }
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
}
错误出现在double i=Convert.ToDouble(txtbox_BattMmnt.Text);
我该怎么办?我尝试了 Regex,但它无法满足我在文本框中输入的值范围。
试试这个:
double d;
if(!double.TryParse(txtbox_BattMmnt.Text, out d))
{
// invalid text in textbox, not convertable to double
}
这允许任意用户输入而不会使您的应用程序崩溃。
试试这个
private void txtbox_BattMmnt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back /*|| e.KeyChar == (char)5*/ || e.KeyChar == 46)
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only Numeric Value", "Error", MessageBoxButtons.OK);
return;//return if it is not numeric.
}
double i = 0;
Double.TryParse(txtbox_BattMmnt.Text, out i);
if (i <= 2.9 || i >= 3.35)
{ e.Handled = false; }
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
}
private void txtbox_BattMmnt_Validating(object sender, CancelEventArgs e)
{
TextBox txtbox_BattMmnt = (TextBox)sender;
double d; Double.TryParse(txtbox_BattMmnt.Text, out d);
if ((d <= 2.8) || (d >= 3.36))
{
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
txtbox_BattMmnt.Text = String.Empty;
}
我试过了……成功了。谢谢大家
private void txtbox_BattMmnt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back /*|| e.KeyChar == (char)5*/ || e.KeyChar == 46)
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only Numeric Value", "Error", MessageBoxButtons.OK);
}
double i=Convert.ToDouble(txtbox_BattMmnt.Text);
if (i >=2.9 || i <= 3.35)
{ e.Handled = false; }
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
}
错误出现在double i=Convert.ToDouble(txtbox_BattMmnt.Text);
我该怎么办?我尝试了 Regex,但它无法满足我在文本框中输入的值范围。
试试这个:
double d;
if(!double.TryParse(txtbox_BattMmnt.Text, out d))
{
// invalid text in textbox, not convertable to double
}
这允许任意用户输入而不会使您的应用程序崩溃。
试试这个
private void txtbox_BattMmnt_KeyPress(object sender, KeyPressEventArgs e)
{
if (Char.IsDigit(e.KeyChar) || e.KeyChar == (char)Keys.Back /*|| e.KeyChar == (char)5*/ || e.KeyChar == 46)
{
e.Handled = false;
}
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only Numeric Value", "Error", MessageBoxButtons.OK);
return;//return if it is not numeric.
}
double i = 0;
Double.TryParse(txtbox_BattMmnt.Text, out i);
if (i <= 2.9 || i >= 3.35)
{ e.Handled = false; }
else
{
e.Handled = true;
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
}
private void txtbox_BattMmnt_Validating(object sender, CancelEventArgs e)
{
TextBox txtbox_BattMmnt = (TextBox)sender;
double d; Double.TryParse(txtbox_BattMmnt.Text, out d);
if ((d <= 2.8) || (d >= 3.36))
{
MessageBox.Show("Please Enter Only from 2.9 to 3.35", "Error", MessageBoxButtons.OK);
}
txtbox_BattMmnt.Text = String.Empty;
}
我试过了……成功了。谢谢大家