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)
    {
}

在表单加载事件中,您获取 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
  }

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

行:

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

给出错误可能是因为它是一个无法解析为整数的空字符串。将其更改为:

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

相关内容

  • 没有找到相关文章

最新更新