+ -
当前位置:首页 → 问答吧 → 一个初级的C#问题,关于FormatException,我找不出原因,求高手帮忙!!

一个初级的C#问题,关于FormatException,我找不出原因,求高手帮忙!!

时间:2011-12-24

来源:互联网

public MainWindow()
  {
  InitializeComponent();
  }

  private void Window_Loaded(object sender, RoutedEventArgs e)
  {
  double x1 = double.Parse(X1.Text);
  double x2 = double.Parse(X2.Text);
  double y1 = double.Parse(Y1.Text);
  double y2 = double.Parse(Y2.Text);
  double disx=(x2-x1)*(x2-x1);
  double disy=(y2-y1)*(y2-y1);
  double distance=Math.Sqrt(disx+disy);
  distanceAB.Text=distance.ToString();
  }
  
  }
}

}
就在第一句double x1 = double.Parse(X1.Text);
已经报未处理FormatException,说输入的字符格式不正确,可程序根本都运行不了,输入的界面都没出现,哪里来输入字符格式不正确啊?求解决!谢谢

作者: ToSurpassTesla   发布时间: 2011-12-24

XI的内容是不是不能转换成double啊?你看一下

作者: LL223851   发布时间: 2011-12-24

Load的时候 TextBox控件值还是 "" 呢,当然转换失败啊。

作者: fangxinggood   发布时间: 2011-12-24

断点,单步查看X1.Text值是否符合

作者: wuyq11   发布时间: 2011-12-24

TextBox控件 设为空

作者: skyxuyan   发布时间: 2011-12-24

控件的值不能转换为double类型啊,。。

作者: zh6335901   发布时间: 2011-12-24

加判断,if(X1.Text!="")
{
double x1 = double.Parse(X1.Text);

}
..........

作者: DENQH   发布时间: 2011-12-24

引用 2 楼 fangxinggood 的回复:

Load的时候 TextBox控件值还是 "" 呢,当然转换失败啊。


还是不怎么懂,请问一下具体怎么做?代码该如何改?

作者: ToSurpassTesla   发布时间: 2011-12-24

引用 8 楼 tosurpasstesla 的回复:

引用 2 楼 fangxinggood 的回复:

Load的时候 TextBox控件值还是 "" 呢,当然转换失败啊。


还是不怎么懂,请问一下具体怎么做?代码该如何改?

不要写在load事件中

作者: MKing0412   发布时间: 2011-12-25

3楼正解,这种处理应该放在确认输入框全部有输入值的时候再进行处理吧,放在load里面,文本框的内容还都为空呢

作者: tian6565597   发布时间: 2011-12-25