我正在尝试创建自己的网络浏览器,打开我创建的本地存储的网页。我是新手用C#编写的,并且已经让浏览器大部分工作但我无法打开网页。我尝试了几个不同的命令并继续获得相同的结果。这是我用来打开文件的命令:
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string curDir = Directory.GetCurrentDirectory();
var url = new Uri(String.Format("file:///{0}/{1}", curDir, "START_HERE.html"));
webBrowser1.Navigate(url);
}
浏览器打开没有问题,但页面继续加载并且不会停止。我尝试将代码移动到webBrowser1_Navigating而是打开Web浏览器,但页面显示为空白。该文件设置为作为内容复制到输出目录。
我认为它可能是进度条,尝试了几种不同的方法来创建它,但仍然得到相同的结果。
这是进度条的代码:
private void webBrowser1_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
{
try
{
if (e.MaximumProgress != 0)
ProgressBar1.Value = (int)(((double)e.CurrentProgress * 100) / e.MaximumProgress);
if (ProgressBar1.Value < 0)
ProgressBar1.Value = 0;
else if (ProgressBar1.Value > 100)
ProgressBar1.Value = 100;
}
catch (Exception ex)
{
}
}
我该怎么做才能修复循环?我知道我错过了什么,但不确定是什么。
答案 0 :(得分:0)
你的帖子在哪里
private void webBrowser1_Navigated(...)
你是说&#34;导航&#34;而不是&#34;导航&#34;?因为如果是这样,你导致循环oby调用Navigate里面的Navigate。
答案 1 :(得分:0)
您必须转到webBroswer控件的属性并删除指向webBroswer1.Navigated的事件处理程序。您可能不希望在与导航关联的任何事件处理程序中都有导航命令,因为您可能会遇到不可预测的循环。
将您的代码放入webBrowser1.ControlAdded中。在构建表单并将Web浏览器添加到其父容器时调用此方法。它只会被调用一次,并且与导航过程无关。