我有一个按钮btnRun
来执行timer1
。在timer1
我希望获得元素的id,然后插入像" blah blah"进入这个元素。
它在工作。
但是,在第二次点击btnRun
时,webBrowser2.Document
会丢失值。
timer
必须有。
那么,如何保持webBrowser2.Document
值的所有时间,因为我会多次点击btnRun
?
我只在申请表中声明:
private WebBrowser webBrowser2;
我要点击另一个按钮。
this.webBrowser2.Navigate(" http://example.com&#34);
private void btnRun_Click(object sender, EventArgs e)
{
this.timer1.Start();
}
private void timer1_Tick(object sender, EventArgs e)
{
this.count++;
string str = "";
if (this.count >= this.line.Count<string>())
{
this.count = 0;
str = this.line[0];
}
else
{
try
{
str = this.line[this.count];
}
catch
{
}
}
int num = new Random().Next(0x186a0, 0x5f5e0ff);
try
{
string str2;
string str3;
HtmlElementCollection elementsByTagName;
int values = 0;
values = (str.Length - str.Split(new char[] { '*' })[1].Length) - 1;
str2 = "http://example.com" + str.Split(new char[] { '*' })[0].Substring(0, values) + "&text=*" + str.Split(new char[] { '*' })[1] + "&rand=" + num.ToString();
str3 = this.code(str2);
if (str3 == "")
return;
List<string> list = new List<string>();
MatchCollection matchs = Regex.Matches(str3, "(<a.*?>.*?</a>)", RegexOptions.Singleline);
foreach (Match match in matchs)
{
if (!list.Contains(match.Groups[1].Value))
{
string str5 = match.Groups[1].Value;
if (str5.Contains("javascript:foward_information"))
{
string[] strArray = str5.Split(new char[] { '\'' });
if (strArray[3] == "0")
{
string str6 = strArray[1];
this.timer1.Stop();
this.webBrowser2.Document.GetElementById("txtCode").InnerText = str6;
elementsByTagName = this.webBrowser2.Document.GetElementsByTagName("input");
foreach (HtmlElement element in elementsByTagName)
{
if (element.GetAttribute("id").Equals("cmdGit"))
{
element.InvokeMember("Click");
//var objWin = window.self;
//objWin.open('', '_self', '');
//objWin.close();
}
}
this.timer1.Stop();
}
}
}
}
}
catch(Exception ex)
{
throw ex;
}
}
答案 0 :(得分:1)
你试图打破计时器,而不是使用计时器控制的Stop()来停止计时器。
this.timer1.Stop();
答案 1 :(得分:0)
您的部分代码是调用页面上的按钮。这将从Web服务器重新加载页面;通过这样做,它将重置页面上的任何值。
很难提供进一步的建议,因为我不明白你想要做什么。