C# 按钮点击两次才会出效果 为什么 下面是代码
wb.ScriptErrorsSuppressed=true;wb.Navigate(url);Thread.Sleep(300);wb.Refresh();while(...
wb.ScriptErrorsSuppressed = true;
wb.Navigate(url);
Thread.Sleep(300);
wb.Refresh();
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
wb.Width = width;
wb.Height = height;
if (width == -1)
{
wb.Width = wb.Document.Body.ScrollRectangle.Width;
}
if (height == -1)
{
wb.Height = wb.Document.Body.ScrollRectangle.Height;
}
Bitmap bitmap = new Bitmap(wb.Width, wb.Height);
wb.DrawToBitmap(bitmap, new Rectangle(0, 0, wb.Width, wb.Height));
bitmap.Save(imgName + ".jpg"); 展开
wb.Navigate(url);
Thread.Sleep(300);
wb.Refresh();
while (wb.ReadyState != WebBrowserReadyState.Complete)
{
Application.DoEvents();
}
wb.Width = width;
wb.Height = height;
if (width == -1)
{
wb.Width = wb.Document.Body.ScrollRectangle.Width;
}
if (height == -1)
{
wb.Height = wb.Document.Body.ScrollRectangle.Height;
}
Bitmap bitmap = new Bitmap(wb.Width, wb.Height);
wb.DrawToBitmap(bitmap, new Rectangle(0, 0, wb.Width, wb.Height));
bitmap.Save(imgName + ".jpg"); 展开
4个回答
展开全部
第二次点击是webbrowser网页没有加载完毕,判断webbrowser加载完毕事件之后再截图
追问
怎么能保证webbrowser加载完毕
追答
webbrowser有一个加载完成事件,你在加载完成事件上附加一个你的截图就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题不在按钮事件内部,而在外部定义的一些变量,或者是生成按钮事件的地方作了限制。
更多追问追答
追问
我是在winform里用的webbrowser浏览网页,然后给网页截图,上面的代码只是截图的那个方法,窗体第一次运行点击一次就可以,但是继续点就需要点两次才能行,麻烦帮我一下,谢谢
追答
好的,我帮你调试下看看哦
这里你需要再作截图操作之前预加载好页面,你的thread不能保证窗体加载成功,你在wb的加载成功里面作个标志,再去执行按钮事件。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你在按钮的事件内部第一句加一个断点,你看看调试的时候会不会进入
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你给的是单击事件还是双击事件勒
追问
单击事件
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询