在WebBrowser控件的导航事件上停止操作

时间:2013-01-03 22:41:07

标签: c# action webbrowser-control

我在C#中创建了一个小型Win Form应用程序,并将WebBrowser组件添加到其中。我想要实现的是一个小应用程序,可以从一个文件中加载一个本地html页面,其中包含“自定义”协议,当然也可以导航到一个网址。

例如,我的网页上会有以下条目

'<a href="Special://905">Close&nbsp;Company</a></TD></TR>'会在程序中打开一个任务。

我尝试实现此目的的方式是通过导航事件,如下所示

       private void webBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
       {
        if ((webBrowser.StatusText.Contains("Special")))
         {
            //For some reason the stop doesn't do much it still tries to proceed to special:123
            //diplaying can not load page..
            webBrowser.Stop();

            //Launch program here.
            MessageBox.Show("Special Command Found");
         }
       }

问题是它仍然导航并说它无法找到页面。 我用GoBack交换了Stop,由于某些原因我第一次运行它时出现了同样的问题,然后当我在浏览器中向后选择时,它可以从那里开始工作。

我也试过导航并使用GoBack,除了在应用程序中闪烁之后,事件再也不会在第一次之后再次发射。

有没有人有任何想法如何解决这个或我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

而不是使用WebBrowser.Stop(); 只需设置e.cancel = true;