2012-08-07 99 views
-1

我正在创建一个网页重新加载程序,我试图从用户获取使用输入的重新加载数量,但是我无法获取用户输入的数量。Windows窗体:'输入字符串格式错误'错误

我试图获取用户输入的textBox2.Text,但我有此错误:

input string was not in a currect format 

此错误是在这一行kkk = System.Int32.Parse(textBox2.Text);

请帮我如何正确获取用户输入的值为int

这是我的程序代码:

public partial class Form1 : Form 
{ 
    public int kkk; 

    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void progressBar1_Click(object sender, EventArgs e) 
    { 

    } 

    private void button1_Click(object sender, EventArgs e) 
    { 
     if (progressBar1.Value != kkk) 
     { 
      do 
      { 
       try 
       { 
        webBrowser1.Navigate(textBox1.Text); 
        while (webBrowser1.ReadyState != WebBrowserReadyState.Complete) 
        { 
         Application.DoEvents(); 
         if(webBrowser1.ReadyState == WebBrowserReadyState.Complete) 
         { 
          progressBar1.Value = progressBar1.Value + 1; 
         } 
        } 
        MessageBox.Show("Loaded"); 
       } 
       catch(Exception) 
       { 
        MessageBox.Show("failed"); 
       } 
      } 
      while(progressBar1.Value !=kkk); 
     } 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     kkk = System.Int32.Parse(textBox2.Text); 
     progressBar1.Maximum = kkk;   
    } 

    private void textBox1_TextChanged(object sender, EventArgs e) 
    { 

} 
+0

在表单加载事件中,您将textbox2的内容取出。文本并将其分配给kkk。但是那时textBox2里面什么都没有,所以它会抛出错误。 – JonH 2012-08-07 18:13:59

回答

0

在你的窗体加载事件中,你采取TextBox2中的内容。文本并将其分配给kkk。但是在那个时候textBox2里面什么都没有,所以它会抛出错误,并且正确地如此,因为文本框是空的,如果它没有值,它如何解析为Int32?

您应该在过程中稍后的某个时间分配值kkk。您可以随时处理异常发生前:

int number; 
    bool result = Int32.TryParse(txtBox2.Text, out number); 
    if (result) 
    { 
    //good conversion you can use number 
    } 
    else 
    { 
    //not so good 
    } 

但是你又在窗体加载事件这样做的,我高度怀疑是由加载事件结束时间根据您的代码,文本框什么。

0

行:

kkk = System.Int32.Parse(textBox2.Text); 

也许是给了一个错误,因为它是一个空字符串是无法得到解析为整数。将其更改为:

kkk = textBox2.Text.Trim(); 
if(kkk.Length > 0) { 
    try { 
     kkk = System.Int32.Parse(kkk); 
    } 
    catch { } 
}