我需要帮助,我收到错误:输入字符串的格式不正确。 提前谢谢。
FORM2.CS:
public void loadClient(object source, System.Timers.ElapsedEventArgs e)
{
Form1 f1 = new Form1();
client = Client.GetClients()[0];
short port = short.Parse(f1.returnTBOX4().Text);
client.Login.SetOT(f1.returnTBOX3().Text, port);
}
FORM1.CS:
public TextBox returnTBOX1()
{
return textBox1;
}
public TextBox returnTBOX2()
{
return textBox2;
}
public TextBox returnTBOX3()
{
return textBox3;
}
public TextBox returnTBOX4()
{
return textBox4;
}
答案 0 :(得分:3)
由于您没有告诉我们错误在哪里,这可能不是正确的地方:
改变这个:
short.Parse(f1.returnTBOX4().Text)
到此:
short my_val;
if(short.TryParse(f1.returnTBOX4().Text, out my_val)){
Do stuff
}
else{
log exception and display to use that information was in incorrect format.
}
这不会解决您获取错误值的问题,但它将允许您检查值,而不是让解析方法抛出异常。
答案 1 :(得分:2)
这可能是因为您键入的内容与解释的内容(当前文化设置正在使用中)不匹配。如果您希望始终以不变的形式提供此数字,请使用以下代码:
using System.Globalization;
short.Parse(f1.returnTBOX4().Text, CultureInfo.InvariantCulture);
答案 2 :(得分:1)
Form1 f1 = new Form1();
您正在创建表单的 new 实例。那个表单不会在textBox4控件中输入任何内容,Parse()方法当然会抱怨它。您必须使用表单的现有实例,即用户正在查看的实例。通过Form2构造函数传递对它的引用。或使用财产。或者如果你真的需要,请使用Application.OpenForms。