输入字符串格式错误

时间:2010-11-22 15:54:12

标签: c#

我需要帮助,我收到错误:输入字符串的格式不正确。 提前谢谢。

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

3 个答案:

答案 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。