我正在制作网络浏览器,但我不允许使用.NET提供的网络浏览器类。我已设法完成所有基本功能。但是我现在正在处理后退和前进按钮。我有一个存储网址的列表(在地址栏中输入的网址)。我想循环使用这些来向前或向后取决于按下的按钮。
我的代码:
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();
}
问题。如何使用我的列表检查所访问的网站?
答案 0 :(得分:0)
尝试使用队列而不是列表。 一个用于以前访问过的url,另一个用于将来的url。
因此,在初次加载浏览器时,两个队列都是空的。 一旦用户导航到URL,该URL就会插入到前一个队列中。如果用户点击“返回”按钮,则该URL将从前一个队列中获取并插入到将来的队列中。
通过这种方式,您可以避免使用枚举器并随时了解您的用户所在的位置。