检索C#WebBrowser控件中单击的链接的URL

时间:2015-04-04 09:35:52

标签: c#

好。所以,我正在制作自己的互联网浏览器并且我有标签。但是,我尝试将其设为实时网址更新程序,而如果您点击任何链接,它将显示在网址的文本框中。 不起作用。 这是标签按钮。

private void button8_Click(object sender, EventArgs e)
    {
        WebBrowser Browser = new WebBrowser();
        tabControl1.TabPages.Add("New Page");
        tabControl1.SelectTab(tabControl1.TabPages.Count - 1);
        Browser.Name = "Web Browser";
        Browser.Dock = DockStyle.Fill;
        tabControl1.SelectedTab.Controls.Add(Browser);
        ((WebBrowser)(tabControl1.SelectedTab.Controls[0])).GoHome();

这是我的文本框没有得到正确的网址。

 private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
    {
        button1.Enabled = true;
        textBox1.Enabled = true;
        //textBox1.Text = Browser.Url.ToString();
        ((WebBrowser) (this.tabControl1.SelectedTab.Controls[0])).Url.ToString();
    }

1 个答案:

答案 0 :(得分:1)

为了实现这一点,您需要获取刚刚加载的网页的所有链接元素,并为该元素的HtmlElement.Click事件分配自定义函数。

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    button1.Enabled = true;
    textBox1.Enabled = true;
    var linkElements = Browser.Document.GetElementsByTagName("a");
    foreach(HtmlElement link in linkElements)
    {
        link.Click += (s, args) =>
        {
            // a link is being clicked
            // get the url the link is pointing to using the href attribute of the element
            textBox1.Text = link.GetAttribute("href");
        }
    }
}