0

我正在制作一个网络浏览器,但我不允许使用 .NET 提供的网络浏览器类。我已经设法完成了所有基本功能。但是我现在正在处理后退和前进按钮。我有一个存储 url 的列表(在地址栏中输入的 urls)。我想遍历这些以根据按下的按钮使用户前进或后退。

我的代码:

public partial class WebBrowser : Form
{
    public string url;
    public string addressText;
    private homeForm homeForm;
    private List <string> urlList = new List <string> ();
    public WebBrowser()
    {
        InitializeComponent();
    }

    private void navigateButton_Click(object sender, EventArgs e)
    {
        addressText = urlBar.Text;
        webNavigate(addressText);
    }

    private void backButton_Click(object sender, EventArgs e)
    {

    }
    private void forwardButton_Click(object sender, EventArgs e)
    {

    }
    private void webNavigate(string urlbartext )
    {
        addressText = urlBar.Text;
        urlbartext = "http://" + addressText;
        urlList.Add(urlbartext);
        HttpWebRequest request = (HttpWebRequest)WebRequest.Create(urlbartext);
        HttpWebResponse response = (HttpWebResponse)request.GetResponse();
        Stream pageStream = response.GetResponseStream();
        StreamReader reader = new StreamReader(pageStream, Encoding.Default);
        string s = reader.ReadToEnd();
        webDisplay.Text = s;
        reader.Dispose();
        pageStream.Dispose();
        response.Close();
    }

问题。如何使用我的列表来检查访问过的网站?

4

1 回答 1

0

尝试使用队列而不是列表。一个用于以前访问的 url,一个用于将来的 url。

因此,在您的浏览器初始加载时,两个队列都是空的。一旦用户导航到一个 url,这个 url 就会被插入到前一个队列中。如果用户点击后退按钮,该 url 将从前一个队列中取出并插入到未来队列中。

这样您就可以避免使用枚举器并随时知道您的用户在哪里。

于 2013-10-21T08:43:46.180 回答