WebBrowser.Navigating 事件

定义

WebBrowser 控件导航到新文档之前发生。

C#
public event System.Windows.Forms.WebBrowserNavigatingEventHandler Navigating;
C#
public event System.Windows.Forms.WebBrowserNavigatingEventHandler? Navigating;

事件类型

示例

下面的代码示例演示了如何在尚未填写网页窗体时使用 事件的处理程序 Navigating 来取消导航。 属性 Document 用于确定表单输入字段是否包含值。

此示例要求窗体包含名为 WebBrowserwebBrowser1 控件,并且窗体类具有 一个 ComVisibleAttribute ,以便 COM 可以访问它。

有关可将以下代码粘贴到其中的完整代码示例,请参阅如何:向 Windows 窗体 应用程序添加 Web 浏览器功能

C#
private void Form1_Load(object sender, EventArgs e)
{
    webBrowser1.DocumentText =
        "<html><body>Please enter your name:<br/>" +
        "<input type='text' name='userName'/><br/>" +
        "<a href='http://www.microsoft.com'>continue</a>" +
        "</body></html>";
    webBrowser1.Navigating += 
        new WebBrowserNavigatingEventHandler(webBrowser1_Navigating);
}

private void webBrowser1_Navigating(object sender, 
    WebBrowserNavigatingEventArgs e)
{
    System.Windows.Forms.HtmlDocument document =
        this.webBrowser1.Document;

    if (document != null && document.All["userName"] != null && 
        String.IsNullOrEmpty(
        document.All["userName"].GetAttribute("value")))
    {
        e.Cancel = true;
        System.Windows.Forms.MessageBox.Show(
            "You must enter your name before you can navigate to " +
            e.Url.ToString());
    }
}

注解

WebBrowser每当设置以下属性之一或调用方法时,控件将导航到新文档:

如果未满足某些条件(例如,用户尚未完全填写表单),则可以处理 Navigating 事件以取消导航。 若要取消导航,请将 Cancel 传递给事件处理程序的 WebBrowserNavigatingEventArgs 对象的 属性设置为 true。 还可以使用此对象通过 WebBrowserNavigatingEventArgs.Url 属性检索新文档的 URL。 如果新文档将显示在网页框架中,可以通过 属性检索框架 WebBrowserNavigatingEventArgs.TargetFrameName 的名称。

处理 事件, Navigated 以在 WebBrowser 控件完成导航并开始在新位置加载文档时接收通知。 处理 事件, DocumentCompleted 以在 WebBrowser 控件完成加载新文档时接收通知。

有关处理事件的详细信息,请参阅 处理和引发事件

适用于

产品 版本
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9

另请参阅