【问题标题】:How can I make the WebBrowser control navigate to a specific address?如何使 WebBrowser 控件导航到特定地址?
【发布时间】:2010-12-25 07:24:09
【问题描述】:

如何在运行代码时将代码转到 example.com

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    webBrowser1.Navigate("www.example.com");
}

运行程序时请更正它转到example.com

private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
    webBrowser1.Navigate("www.example.com");
}

private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    if (webBrowser1.Document != null)
    {
        IHTMLDocument2 document = webBrowser1.Document.DomDocument as IHTMLDocument2;
        if (document != null)
        {
            IHTMLSelectionObject currentSelection = document.selection;    
            IHTMLTxtRange range = currentSelection.createRange() as IHTMLTxtRange;
            if (range != null)
            {
                const String search = "ant";
                if (range.findText(search, search.Length, 2))
                {
                    range.select();
                }
            }
        }
    }              
}

【问题讨论】:

    标签: c# winforms webbrowser-control


    【解决方案1】:

    您可以通过Form.Load 活动导航到 example.com 吗?它在我的机器上运行良好。

    private void Form1_Load(object sender, EventArgs e)
    {
        webBrowser1.Navigate("www.example.com"); 
    }
    

    【讨论】:

      【解决方案2】:

      如果您希望 WebBrowser 控件在您的表单显示在屏幕上时自动导航到 www.example.com,您需要处理表单的 Load event (Form1)。

      正如现在所写,您处理WebBrowser 控件的Navigated event 并告诉它导航到其他地方。但是,Navigated 事件仅在浏览器导航到并开始加载新页面时引发。即使你让你的代码工作,它也将永远追逐自己的尾巴。

      请尝试以下方法:

      public partial class Form1 : Form
      {
          public Form1()
          {
              InitializeComponent();
          }
      
          private void Form1_Load(object sender, EventArgs e)
          {
              webBrowser1.Navigate("http://www.example.com"); 
          }
      }
      

      【讨论】:

        【解决方案3】:
        public Form1()
        {
            InitializeComponent();
            webBrowser1.Navigate("http://www.example.com"); 
        }
        

        这会在应用初始化后执行导航方法。

        【讨论】:

          【解决方案4】:

          我不确定我是否理解您的问题:webBrowser1_DocumentCompleted 方法中的e 变量包含Url 属性,该属性包含当前Uri 对象以及浏览器控件到达的URL:

          private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
          {
              WebBrowser browser = (WebBrowser)sender;
              if (e.Url.Host.EndsWith("example.com"))
              {
                  // do something
              }
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2010-11-29
            • 1970-01-01
            • 2020-06-09
            • 1970-01-01
            相关资源
            最近更新 更多