-1

我正在创建一个网页重新加载器,我正在尝试使用来自用户的输入来获取重新加载的数量,但我无法从用户那里获得输入的数量。

我正在尝试获取用户输入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)
    {

}
4

2 回答 2

0

The line:

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

is giving an error maybe because it is an empty string which is unable to get parsed to integer. Change it to:

kkk = textBox2.Text.Trim();
if( kkk.Length > 0 ) {
    try {
        kkk = System.Int32.Parse(kkk);
    }
    catch { }
}
于 2012-08-07T18:23:23.177 回答
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
  }

但是您再次在表单加载事件中执行此操作,我非常怀疑在加载事件完成时基于您的代码的文本框中是否有任何内容。

于 2012-08-07T18:16:12.910 回答