0

我正在尝试使用列表框浏览网页,我已经添加了三个链接。所有三个链接都加载良好,但是当第三个链接完成加载时,我得到了这个异常。

例外是:

InvelidArguement = value of '3' is not valid for 'SelectedIndex'. Parameter name:
 SelectedIndex

警告是:

`The result of the exception is always 'true' since a value of type 'int' is
  never equal to 'null' of type 'int?'

这是我的程序图像:

这是我的程序代码:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        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 listBox1_SelectedIndexChanged(object sender, EventArgs e)
    {

    }

    private void button1_Click(object sender, EventArgs e)
    {
        do
        {
        webBrowser1.Navigate(listBox1.SelectedItem.ToString());
        while (webBrowser1.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
            if(webBrowser1.ReadyState == WebBrowserReadyState.Complete)
            {
                listBox1.SelectedIndex = listBox1.SelectedIndex+1;
            }
        }
        } while (listBox1.SelectedIndex != null);
    }

    private void Form1_Load(object sender, EventArgs e)
    {

    }
}
}
4

1 回答 1

1

此处的此声明引起了问题。当所选索引(在您的示例中为 0 - 2)达到 3 时,它将引发异常,因为没有可用的索引 3。

listBox1.SelectedIndex = listBox1.SelectedIndex+1;

您的循环也将永远不会结束,因为 SelectedIndex 返回一个永远不会返回 null 的整数。您需要修改代码以检查长度,而不是使用新的索引整数。请记住,计数将始终返回比索引高一个值(计数从 1 开始,索引从 0 开始)。

于 2012-08-17T21:10:23.107 回答