您好,登錄后才能下訂單哦!
webbrowser是一個比較實用的工具,主要用于在winform窗體中嵌入瀏覽器,達到winform與webform互操作的目的。
先上一個demo,看一下能實現什么效果。
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", "guwei4037");//給百度搜索的文本框賦值 searchButton.InvokeMember("click");//調用百度搜索按鈕的點擊事件 }
在winform中拖一個webbrowser控件,然后在相應事件中鍵入如上代碼,就可以實現自助搜索(無需在文本框中輸入關鍵詞guwei4037,再點搜索按鈕,而是直接點擊一個按鈕進行搜索)。
原理很簡單,就是通過查找在webbrowser控件生成的html代碼中的input元素或button元素的id,通過api實現模擬賦值和查找工作。
再附一個稍微復雜的一點的例子。
如果生成的html比較復雜,比如含iframe這類的標簽時該如何處理呢?
比如,我們要訪問qq空間里面的留言功能時,通過google chrome瀏覽器看到的html代碼,很復雜,好在我們也有辦法處理。
private void Form1_Load(object sender, EventArgs e) { this.webBrowser1.Url = new Uri("http://user.qzone.qq.com/345822155/infocenter#!app=334&url=http%3A%2F%2Fctc.qzs.qq.com%2Fqzone%2Fmsgboard%2Fmsgbcanvas.html%23page%3D1"); }
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"); } }
更多信息,請參考:微軟官方網站
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。