1. 程式人生 > >關於 WinForm中webbrowser控制元件的使用

關於 WinForm中webbrowser控制元件的使用

 webbrowser是一個比較實用的工具,主要用於在winform窗體中嵌入瀏覽器,達到winform與webform互操作的目的。

        private void Form1_Load(object sender, EventArgs e)
        {
            this.webBrowser1.Url = new Uri("http://www.baidu.com");//指定url地址為百度首頁
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            HtmlElement searchWords = webBrowser1.Document.All["kw"];//獲取百度搜索的文字框
            HtmlElement searchButton = webBrowser1.Document.All["su"];//獲取百度搜索的按鈕
            searchWords.SetAttribute("value", "趙薇");//給百度搜索的文字框賦值
            searchButton.InvokeMember("click");//呼叫百度搜索按鈕的點選事件
        }

在winform中拖一個webbrowser控制元件,然後在相應事件中鍵入如上程式碼,就可以實現自助搜尋(無需在文字框中輸入關鍵詞趙薇,再點搜尋按鈕,而是直接點選一個按鈕進行搜尋)。

原理很簡單,就是通過查詢在webbrowser控制元件生成的html程式碼中的input元素或button元素的id,通過api實現模擬賦值和查詢工作。

再附一個稍微複雜的一點的例子。

如果生成的html比較複雜,比如含iframe這類的標籤時該如何處理呢?

比如,我們要訪問qq空間裡面的留言功能時,通過google chrome瀏覽器看到的html程式碼,很複雜,好在我們也有辦法處理

        private void button1_Click(object sender, EventArgs e)
        {
            if (!webBrowser1.IsBusy)//判斷有沒有載入新的文件
            {
                HtmlElement searchButton = webBrowser1.Document.Window.Frames["tgb"].Document.All["btnPostMsg"];//獲取到iframe id為tgb下面的button
                searchButton.InvokeMember("click");
            }
        }