webbrowser是不断刷新的。就算你绘了图,那个位置马上又被刷新为原来的样子,所以此路不通。
创新互联建站于2013年创立,公司以成都网站设计、成都网站制作、系统开发、网络推广、文化传媒、企业宣传、平面广告设计等为主要业务,适用行业近百种。服务企业客户上千家,涉及国内多个省份客户。拥有多年网站建设开发经验。为企业提供专业的网站建设、创意设计、宣传推广等服务。 通过专业的设计、独特的风格,为不同客户提供各种风格的特色服务。
可不可以这样变通:
把你的图片制作好,然后在htm文件中引用它,最后通过webbrowser显示。
新建一个Winform,在和Form1平行的位置粘贴如下代码
Public Class MyLabel Inherits Label Protected Overrides Sub OnPaint(e As PaintEventArgs) e.Graphics.DrawEllipse(New Pen(Color.Red), New Rectangle(2, 2, 10, 10)) MyBase.OnPaint(e) End Sub End Class
运行,停掉,在工具箱找到MyLabel,拖动就可以看到效果。这只是最基本的重写,要模仿QQ还需要其他技术以及美工。
用DataGrid的话,得重写(继承Datagrid),你也可以考虑自定义控件,看起来1个TableLayoutPanel,3个label,3个Datagrid就能搞定。
那么我建议你用一个新的窗体完成这个功能。将你可能用到的所有控件画在那个窗体里(照葫芦画瓢),实现你所说的功能应该不成问题。不过工作量是不小。如果你能找到一个合适的第三方控件,就省不少力气。不过要一般的话得花点钱。希望你能找到个免费的(一般都会或多或少有一些Bug),祝你好运吧。
记得VB6当中有Shape控件,但是VB.net里这个控件不存在了。
提个思路:使用Picture控件或Label控件,通过代码在控件里绘图想要的图形,可以试试。