1
我是C#的初学者,我有一个问题。 我每次在搜索请求后在web浏览器控件中找到某个位置时都需要弹出一个消息框,此时将选择该位置。 我正在使用计时器刷新webBrowser并再次启动搜索。这就像通知系统。如何搜索WebBrowser上的文本?
using System;
using System.Windows.Forms;
using mshtml;
namespace websearch
{
public partial class Form1 : Form
{
Timer temp = new Timer();
//Timer refreshh = new Timer();
public Form1()
{
InitializeComponent();
temp.Tick += new EventHandler(refreshh_Tick);
temp.Interval = 1000 * 5;
temp.Enabled = true;
temp.Start();
WebBrowser1.Navigate("http://stackoverflow.com/");
}
void refreshh_Tick(object sender, EventArgs e)
{
WebBrowser1.Refresh();
WebBrowser1.DocumentCompleted += Carder_DocumentCompleted;
}
private void Carder_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
FindNext("C#", WebBrowser1);
temp.Tick += refreshh_Tick;
}
public void FindNext(string text, WebBrowser webBrowser2)
{
IHTMLDocument2 doc = webBrowser2.Document.DomDocument as IHTMLDocument2;
IHTMLSelectionObject sel = doc.selection;
IHTMLTxtRange rng = sel.createRange() as IHTMLTxtRange;
rng.collapse(false); // collapse the current selection so we start from the end of the previous range
if (rng.findText(text))
{
rng.select();
MessageBox.Show("Theire are new C# Question");
}
}
}
}
假设你搜索''
只需交换'foreach'和'if'块。 – 2015-04-20 03:17:45
如果第一个'if'可以找到它的文本'innerText'那么就没有必要寻找孩子,因为'的元素innerText'包含其孩子的'innerText' – Ahmad 2015-04-28 13:56:16