2010-11-22 161 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。