C# 如何在列表中存储和访问url以实现反向和正向web浏览器功能

C# 如何在列表中存储和访问url以实现反向和正向web浏览器功能,c#,asp.net,list,browser,C#,Asp.net,List,Browser,我正在制作web浏览器,但不允许使用.NET提供的web浏览器类。我已经设法使所有的基本功能。不过,我现在正在处理后退和前进按钮。我有一个存储url的列表(在地址栏中输入的url)。我想通过这些循环来引导用户前进或后退,具体取决于按下的按钮 我的代码: public partial class WebBrowser : Form { public string url; public string addressText; private homeForm homeFor

我正在制作web浏览器,但不允许使用.NET提供的web浏览器类。我已经设法使所有的基本功能。不过,我现在正在处理后退和前进按钮。我有一个存储url的列表(在地址栏中输入的url)。我想通过这些循环来引导用户前进或后退,具体取决于按下的按钮

我的代码:

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();
    }
公共部分类WebBrowser:表单
{
公共字符串url;
公共字符串地址文本;
私人家庭形式家庭形式;
私有列表urlList=新列表();
公共网络浏览器()
{
初始化组件();
}
私有无效导航按钮单击(对象发送者,事件参数e)
{
addressText=urlBar.Text;
网络导航(地址文本);
}
私有无效backButton_单击(对象发送方,事件参数e)
{
}
私有无效转发按钮\单击(对象发送者,事件参数e)
{
}
私有void webNavigate(字符串urlbertext)
{
addressText=urlBar.Text;
urlbertext=“http://”+地址文本;
添加(urlbertext);
HttpWebRequest request=(HttpWebRequest)WebRequest.Create(urlbertext);
HttpWebResponse=(HttpWebResponse)request.GetResponse();
Stream pageStream=response.GetResponseStream();
StreamReader=新的StreamReader(pageStream,Encoding.Default);
字符串s=reader.ReadToEnd();
webDisplay.Text=s;
reader.Dispose();
Dispose();
response.Close();
}

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

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

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


这样,您就可以避免使用枚举数,并随时知道用户的位置。

但我需要实现浏览器历史记录功能,队列是否也可以满足这一要求?我有点使用列表,以便以后可以参考它了解我的历史记录。是的,队列就足够了。