private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElement bt = this.webBrowser1.Document.GetElementById("submitFormBtnA");
if (bt != null)
{
//bt.InvokeMember("click");
Thread t = new Thread(submit);
t.Start();
}
} private void submit()
{
Thread.Sleep(2000);
HtmlElement ad = this.webBrowser1.Document.GetElementById("submitFormBtnA");
ad.InvokeMember("click");
}
本来想在DocumentCompleted时直接点击提交按钮,但是网页在载入后,并没有给表单数据,而是在载入后会用JAVASCRIPT将数据附值给表单,所以需要在DocumentCompleted后再等一两秒再提交按钮,直接在DocumentCompleted中用Thread.Sleep()是不行的,因为界面会假死,WebBrowser并没的继续执行,新建线程,在线程中执行,又出错,好像是因为不能在多线程环境中使用WebBrowser的原因.
求解决办法.
{
HtmlElement bt = this.webBrowser1.Document.GetElementById("submitFormBtnA");
if (bt != null)
{
//bt.InvokeMember("click");
Thread t = new Thread(submit);
t.Start();
}
} private void submit()
{
Thread.Sleep(2000);
HtmlElement ad = this.webBrowser1.Document.GetElementById("submitFormBtnA");
ad.InvokeMember("click");
}
本来想在DocumentCompleted时直接点击提交按钮,但是网页在载入后,并没有给表单数据,而是在载入后会用JAVASCRIPT将数据附值给表单,所以需要在DocumentCompleted后再等一两秒再提交按钮,直接在DocumentCompleted中用Thread.Sleep()是不行的,因为界面会假死,WebBrowser并没的继续执行,新建线程,在线程中执行,又出错,好像是因为不能在多线程环境中使用WebBrowser的原因.
求解决办法.
解决方案 »
- 新人求助,C#写的PACS系统,优化读取速度,没有思路
- 数据库中的一个难题
- Winform怎样在启动时自动隐藏?【点击任务栏图标还可以打开的。】
- C#用sql开发的软件,安装到客户机器后,为防止客户用sql的查询、管理器来更改sql数据表的数据,如何安装sql2000时不安装查询、管理器,只有服务器呢?
- 0x0 图片问题
- ContextMenuStrip 的焦点问题
- List<>存储一个数组的时候,是否是像普通[]数组那样有很高的访问效率?
- 是否可以把一个Form嵌入另一个Form的一个Panel中,还要能拖出来。
- 关于使用C#操作word的一个问题,请问如何知道一个文档已经关闭了?
- vs.net的cd-key(在线等待)
- C# winfrom 程序. 写了个C#winfrom+sql2000仓库方面的程序,在局域网中测试能访问.现在要在各个分公司(广域网)的机器上使用,要求访问SQLserver需要什么条件呢?
- c#委托与事件的疑问?
{
HtmlElement bt = this.webBrowser1.Document.GetElementById("submitFormBtnA");
if (bt != null)
{
//bt.InvokeMember("click");
//Thread t = new Thread(submit);
//t.Start();
backgroundWorker1.RunWorkerAsync("submit");
}
} private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
hread.Sleep(2000);
HtmlElement ad = this.webBrowser1.Document.GetElementById("submitFormBtnA");
ad.InvokeMember("click");
} private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{ }
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
System.Threading.Thread th = new System.Threading.Thread(
new System.Threading.ThreadStart(delegate()
{
System.Threading.Thread.Sleep(2000);
if (webBrowser1.InvokeRequired)
{
webBrowser1.Invoke(new MethodInvoker(delegate()
{
HtmlElement ad = webBrowser1.Document.GetElementById("sb");
if (ad != null)
{
ad.InvokeMember("click");
}
}));
}
else
{
HtmlElement ad = webBrowser1.Document.GetElementById("sb");
if (ad != null)
{
ad.InvokeMember("click");
}
}
}));
th.Start();
}