C#写winform程序,绘图如何绘制到控件的上面?

liutaoxwl 2011-09-20 10:22:15
我用c#写了个winform程序,一个窗体有一个控件(webBrowser控件),我在窗体的OnPaint里面绘图,但是绘制的图形永远在webBrowser控件的下面,我想让绘制的图形在webBrowser控件上面产生叠加效果,怎么办?
...全文
809 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
shu_star 2013-06-17
  • 打赏
  • 举报
回复
别折腾了,WebBrowser控件总是在winform控件最上面表示,基本不可以达到这个效果,除非,你在上面添加一个窗体,置为最顶端。但是那样也不好。
effun 2013-06-17
  • 打赏
  • 举报
回复
有个办法你可以试试,在文档加载完成以后,直接操纵DOM向页面里添加一个IMG或其它元素,然后来实现你的需求。
makeyouvs2012 2013-06-17
  • 打赏
  • 举报
回复
using(Graphics g = this.webBrowser1.CreateGraphics())
失落的神庙 2013-06-17
  • 打赏
  • 举报
回复
还不如用webbrowser 做UI
Anod 2013-06-17
  • 打赏
  • 举报
回复
1.放一个Pic控件,放到底层,不可见. 2.需要叠加的时候,放到顶层,可见.大小位置自己定
ChingderLin 2013-06-17
  • 打赏
  • 举报
回复
lmx520_2007 2012-12-05
  • 打赏
  • 举报
回复
我也遇到类似问题 先按照大家说的方法试试吧
jcyluck 2011-09-20
  • 打赏
  • 举报
回复
两个方法:
1.在webBrowser1里面调用PAINT事件进行绘制,而不是在窗口进行绘制
2.试一下将你的OnPaint事件的调用,放在 FORM_LOAD事件 里,这样,他应该就会先添加控件,再绘制。
xiongxyt2 2011-09-20
  • 打赏
  • 举报
回复
Graphics g = this.webBrowser1.CreateGraphics();
liutaoxwl 2011-09-20
  • 打赏
  • 举报
回复
“winform会先调用OnPaint,再绘制窗体上本身有的控件。”
这个顺序是否能改?或者是否有事件是先绘制本身所有控件,再绘制我的图形?
kid5 2011-09-20
  • 打赏
  • 举报
回复
要不你就在控件上去定义你的绘制过程。
kid5 2011-09-20
  • 打赏
  • 举报
回复
winform会先调用OnPaint,再绘制窗体上本身有的控件。
debra 2011-09-20
  • 打赏
  • 举报
回复
是说在控件上绘图么
Graphics g = Graphics.FromHwnd(你的控件名.Handle);
g.FillEllipse(Brushes.Yellow, 0, 0, 10, 10);//随便写的,你可以根据需求改

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧