WebBrowser.Navigating 事件

定义

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

public:
 event System::Windows::Forms::WebBrowserNavigatingEventHandler ^ Navigating;
public event System.Windows.Forms.WebBrowserNavigatingEventHandler Navigating;
public event System.Windows.Forms.WebBrowserNavigatingEventHandler? Navigating;
member this.Navigating : System.Windows.Forms.WebBrowserNavigatingEventHandler 
Public Custom Event Navigating As WebBrowserNavigatingEventHandler 
Public Event Navigating As WebBrowserNavigatingEventHandler 

事件类型

示例

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

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

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

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());
    }
}
Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) _
    Handles Me.Load

    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>"

End Sub

Private Sub webBrowser1_Navigating( _
    ByVal sender As Object, ByVal e As WebBrowserNavigatingEventArgs) _
    Handles webBrowser1.Navigating

    Dim document As System.Windows.Forms.HtmlDocument = _
        webBrowser1.Document
    If document IsNot Nothing And _
        document.All("userName") IsNot Nothing And _
        String.IsNullOrEmpty( _
        document.All("userName").GetAttribute("value")) Then

        e.Cancel = True
        MsgBox("You must enter your name before you can navigate to " & _
            e.Url.ToString())
    End If

End Sub

注解

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

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

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

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

适用于

另请参阅