-1

ArguementOutofRange Exceptionが何度も何度も発生している私のコードを誰かが助けてください。私が間違っていることを教えてください。これについてすべてのループを試しましたが、常に ArgueOutofrange エラーが発生します。

例外は:-

「InvelidArguement = '3' の値は 'SelectedIndex' には無効です。パラメータ名: SelectedIndex」

&

警告は次のとおりです。

「タイプ 'int' の値はタイプ 'int' の 'null' と決して等しくないため、例外の結果は常に 'true' になりますか?」

これは私のコードです:

public partial class Form1 : Form
    {
        public Form1()
        {
        InitializeComponent();
        listBox1.Items.Add("www.google.com");
        listBox1.Items.Add("www.facebook.com");
        listBox1.Items.Add("www.yahoo.com");
        listBox1.SelectedIndex = 0;
        listBox1.DataSource = listBox1.Items;

        }

    private void button1_Click(object sender, EventArgs e)
    {
        var num = listBox1.Items.Count;
        string str = Convert.ToString(num);
        textBox1.Text = str;
        for (int i = 0; i < num; )
        {
            webBrowser1.Navigate(listBox1.SelectedItem.ToString());
            while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
            {
                Application.DoEvents();
                if (webBrowser1.ReadyState == WebBrowserReadyState.Complete)
                {
                    listBox1.SelectedIndex = listBox1.SelectedIndex + 1;
                }
            }
        }
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        var num = listBox1.Items.Count;
        string str = Convert.ToString(num);
        textBox1.Text = str;
    }
} 
4

1 に答える 1

0

まず第一に、あなた自身に好意を持って、BackgroundWorker代わりに調べてくださいDoEvents. `DoEvents は間違っています。

質問で数十行のコードをダンプし、人々に問題がどこにあるかを把握して修正するように依頼する以外に、あなたは私たちに多くのことを与えてくれませんでした. 例外が発生する場所は、人々に助けてもらいたい場合の一般的な礼儀です。

問題はおそらくで割り当てSelectedIndexられている行にありbutton1_Clickます。ブラウザですべての項目が成功した場合、選択したインデックスを 3 に設定し、有効なインデックスの最大値は 2 です。

于 2012-08-18T03:52:54.543 に答える