不行,BeforeNavigate2 —— 找不到这事件!!1
解决方案 »
- C#实现自定义通讯协议
- 同时设置多个textbox属性为只读
- 求 Access(Microsoft.Jet.OLEDB.4.0) 在 64位Windows2003 下出错的解决方案
- 求高手解答uniqueidentifier的问题
- 请问如何设置使一个控件失去焦点
- 想做一个安装程序,详细见贴
- C# 高手,大侠,SOS ,HELP,急求
- 碰上一个爆难的问题,问问大侠们.解决马上结贴.
- 用C#怎么在一个Excel文件中第一行前插入一个空行(up有分)
- 问一个困扰我一天的问题
- datagridview中如何加入progressbar控件?
- 我用C#做的一个系统 用http://localhost/目录能打开,用http://本机IP/目录能打不开?
没获得新的 URL ,Navigating 不响应。
private void WebBrowser1_DocumentCompleted(object sender , System.Windows.Forms.WebBrowserDocumentCompletedEventArgs e )
{
foreach(HtmlElement link in Me.WebBrowser1.Document.All)
{
if(link.DomElement.GetType() == typeof(mshtml.HTMLAnchorElementClass)
{
((mshtml.HTMLAnchorElementClass)link.DomElement).HTMLAnchorEvents2_Event_onclick += new HTMLAnchorEvents2_onclickEventHandler(link_HTMLAnchorEvents2_Event_onclick);
}
}
}
ptivate bool link_HTMLAnchorEvents2_Event_onclick(mshtml.IHTMLEventObj pEvtObj)
{
MessageBox.Show(((mshtml.HTMLAnchorElementClass)pEvtObj.srcElement).href);
}
可以试试如下代码: Private Sub AddLinksEvent()
Dim doc As HtmlDocument = Me.WebBrowser1.Document
Dim els As HtmlElementCollection = doc.GetElementsByTagName("a")
For Each el As HtmlElement In els
If String.Compare(el.InnerText, "Prepare Reply", True) = 0 Then
AddHandler el.Click, AddressOf Element_Click
End If
Next
End Sub Private Sub Element_Click(ByVal sender As Object, ByVal e As HtmlElementEventArgs)
Dim el As HtmlElement
el = Me.WebBrowser1.Document.GetElementFromPoint(e.MousePosition)
'Dim sPn As String = GetPN(el)
End Sub
Browser.Document.Click += new HtmlElementEventHandler(Document_Click);void Document_Click(object sender, HtmlElementEventArgs e)
{
HtmlElement _HtmlElement = ((HtmlDocument)sender).ActiveElement;
string URL = _HtmlElement.GetAttribute("href");
Browser.Navigate(new Uri(URL));
}
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());
}
}