WebBrowser.Navigating 事件
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
在 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 用于确定表单输入字段是否包含值。
此示例要求窗体包含名为 WebBrowser 的 webBrowser1
控件,并且窗体类具有 一个 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 控件完成加载新文档时接收通知。
有关处理事件的详细信息,请参阅 处理和引发事件。