我试图用这段代码得到结果。可以使用我选择的任何数字/数字,但最后只能使用“ 0”。(val1,是我要在其中写数字的文本框)和(yarncombobox,ft3.garnlangd1是我在计算中获得所需值的位置)。我猜Int32可能是错误的...我应该改用什么?
另外,删除所有数字时,我收到错误消息“ System.FormatException:'Indatasträngenhade ett felaktigt格式。'”
private void YarnWeightTextbox_TextChanged(object sender, EventArgs e)
Int32 val1 = Convert.ToInt32(YarnWeightTextbox.Text);
Class2 ft3 = YarnComboBox.SelectedItem as Class2;
{
YarnLengthTextbox.Text = Convert.ToString((val1 / 50) * ft3.garnlangd1);
编辑:我确实得到了一些工作,它确实给正确的价值与浮动。但是同样的问题。当删除同一框中的所有数字时,应用程序崩溃。
float val1 = Convert.ToSingle(YarnWeightTextbox.Text);
Class2 ft3 = YarnComboBox.SelectedItem as Class2;
float val2 = val1 / 50 * ft3.garnlangd1;
{
YarnLengthTextbox.Text = Convert.ToString(val2);
正如Shane Haw在评论中提到的那样,您会得到,FormatException
因为该TextChanged
事件会在文本更改时触发。
如果值YarnWeightTextBox.Text
是"5"
,和您删除"5"
然后是TextChanged
事件触发。这表示您""
要将一个空字符串传递给Convert.ToSingle
。空字符串不会转换为float
,因此得到FormatException
。如果您还输入数字以外的内容,您将得到相同的结果TextBox
。
更好的选择是检查值是否YarnWeightTextBox.Text
解析为afloat
而不是使用Convert.ToFloat
。
private void YarnWeightTextBox_TextChanged(object sender, EventArgs e)
{
float val1 = 0.0F;
if (!float.TryParse(YarnWeightTextBox.Text, out val1))
{
// The value in YarnWeightTextBox.Text does not parse to a float. You could
// do something here to indicate to the user that they did not provide a correct
// value, or just return.
return;
}
// Calculate the yarn length and put it in the YarnLengthTextBox.Text like you're doing now.
}
或者,如果为Windows Forms
,则可以查看该NumericUpDown
控件,该控件将阻止用户输入无效值。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句