首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

winform 输入字符串的格式不正确,该怎么解决

2012-05-28 
winform 输入字符串的格式不正确我的程序窗口上有几个文本框,我想在文本框中输入数字, 并使用keypress事件

winform 输入字符串的格式不正确
我的程序窗口上有几个文本框,我想在文本框中输入数字, 并使用 keypress 事件限制只能输入数字;程序调试没有出错,但是运行后,在文本框中输入数字之后就出错了:


但是出错 说“字符串格式不正确“,我尝试使用使用 double.TryParse(),去验证,但还是错了,
我不知道为什么,请大家帮帮我,谢谢!  
   


  if (double.TryParse(txt1.Text, out B11))
  {
  B11 = B11;
  }
  else
  {
  MessageBox.Show("程序出错!");
  }
  B12 = Convert.ToDouble(txt2.Text);
  B13 = Convert.ToDouble(txt3.Text);
  L11 = Convert.ToDouble(txt4.Text);
  L12 = Convert.ToDouble(txt5.Text);
  L13 = Convert.ToDouble(txt6.Text);
  A11 = Convert.ToDouble(txt7.Text);
  A12 = Convert.ToDouble(txt8.Text);
  A13 = Convert.ToDouble(txt9.Text);”

[解决办法]
类型不正确。是不是输入有字母,空格或特殊字符?

double.TryParse()应该不会报错呀,提示什么错误?
[解决办法]
private void TextBox1_KeyPress(object sender, KeyPressEventArgs e)
{
//检测是否已经输入了小数点
bool IsContainsDot = ((TextBox)sender).Text.Contains(".");
if ((e.KeyChar < 48 || e.KeyChar > 57) && (e.KeyChar != 8) && (e.KeyChar != 46))
{
e.Handled = true;
}
else if (IsContainsDot && (e.KeyChar == 46)) //如果输入了小数点,并且再次输入
{
e.Handled = true;
}
}


直接限定你的文本框只可以输入数字。
[解决办法]
问题在这里,double.TryParse(txt1.Text, out B11) 你第一次输入时txt1.Text是一个空的字符串,所以报错
[解决办法]
他是在keypress事件里面,怎么第一次输入空字符串呢

探讨

问题在这里,double.TryParse(txt1.Text, out B11) 你第一次输入时txt1.Text是一个空的字符串,所以报错

热点排行