2010-11-22 152 views
0

我需要帮助,我收到错误:输入字符串格式不正确。 在此先感谢。输入字符串格式不正确

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; 
    } 
+1

你应该用返回`Text`的属性替换那些方法。 – SLaks 2010-11-22 15:56:02

回答

2

这可能是因为您键入的内容与解释内容(当前的文化设置正在使用)之间不匹配。如果你想始终提供一个不变的形式这个数,使用下面的代码:

using System.Globalization; 

short.Parse(f1.returnTBOX4().Text, CultureInfo.InvariantCulture); 
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
Form1 f1 = new Form1(); 

你正在创建形式的实例。该表单不会在textBox4控件中输入任何内容,Parse()方法当然会抱怨它。您必须使用用户正在查看的表单的现有实例。通过Form2构造函数传递对它的引用。或者使用一个属性。或者如果你真的必须使用Application.OpenForms。