资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

包含vbnet绘图丢失的词条

vb.net 程序绘图运行过程中图片不显示,程序运行完后才显示

你想的以及接近了,要达到你要的效果,需要使用多线程,写入数据库和显示绘图的结果各一个线程

创新互联公司专注于庆元网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供庆元营销型网站建设,庆元网站制作、庆元网页设计、庆元网站官网定制、成都微信小程序服务,打造庆元网络公司原创品牌,更为您提供庆元网站排名全网营销落地服务。

用vb.net 绘图在Button1_Click可以画出一条线。但是换成form1的Load事件就不能画图了,为什么?

换成form1的Load事件就不能画图了:

是因为form1在Load的时候,它还不能创建图形界面,也就不能执行 Me.CreateGraphics

vb.net绘图问题

代码:

Public Class Form1

'*********************************************************************   

'作者:章鱼哥,QQ:3107073263 群:309816713       

'如有疑问或好的建议请联系我,大家一起进步     

'*********************************************************************     

'绘制圆角矩形函数

Private Function GetRoundedRectPath(ByVal rect As Rectangle, ByVal radius As Integer) As System.Drawing.Drawing2D.GraphicsPath

rect.Offset(-1, -1)

Dim RoundRect As New Rectangle(rect.Location, New Size(radius - 1, radius - 1))

Dim path As New System.Drawing.Drawing2D.GraphicsPath

path.AddArc(RoundRect, 180, 90)     '左上角

RoundRect.X = rect.Right - radius   '右上角

path.AddArc(RoundRect, 270, 90)

RoundRect.Y = rect.Bottom - radius  '右下角

path.AddArc(RoundRect, 0, 90)

RoundRect.X = rect.Left             '左下角

path.AddArc(RoundRect, 90, 90)

path.CloseFigure()

Return path

End Function

'绘制矩形

Private Sub DrawingRect()

Dim g As Graphics = Me.CreateGraphics

Dim Pen As New Pen(Brushes.DarkRed, 2)

Dim Hei As Integer = Me.Height

Dim Wid As Integer = Me.Width

'矩形的位置和长宽随着窗体的变化而改变

Dim Rec As New Rectangle(Int(Wid / 5), Int(Hei / 5), Int(Wid / 2), Int(Hei / 2))

'  g.DrawRectangle(Pen, Rec)

'清楚现有的矩形

g.Clear(Me.BackColor)

g.DrawPath(Pen, GetRoundedRectPath(Rec, 30))

End Sub

Private Sub Form1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles MyBase.Paint

DrawingRect()

End Sub

Private Sub Form1_SizeChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.SizeChanged

Me.Invalidate() '此函数可引发Paint事件

End Sub

End Class

效果截图:

原窗口:

缩小后:

vb.net GDI绘图刷新问题

绘图代码写在Paint事件中,如

Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint

Dim g As Graphics = Me.CreateGraphics

g.DrawLine(Pens.Red, 100, 100, 200, 100)

End Sub

'方法二:在 PictureBox1上显示图像----图画在Bitmap

PictureBox1.Image = Nothing

Dim wid As Integer = PictureBox1.ClientSize.Width

Dim hgt As Integer = PictureBox1.ClientSize.Height

Dim bm As New Bitmap(wid, hgt)

Dim g As Graphics = Graphics.FromImage(bm)

'画图代码

'画图代码

PictureBox1.Image = bm

PictureBox1.Refresh()

g.Dispose()

在VB NET中,在Form_Load中创建graphics类,并绘制直线,为什么执行程序后发现直线绘制不出来?

1. 创建一个Graphics对象实例。

绘制图形必须创建Graphics对象。如果是在窗体上绘图,要使用下列代码创建Graphics对象;

Dim MyGraphics As Graphics = Me.CreateGraphics

如果是在PictrueBox里绘图,要使用下列代码创建Graphics对象;

Dim MyGraphics As Graphics = PictureBox1.CreateGraphics

2. 定义一个Brush对象,用来填充图形(如果你需要填充的话)。

如果填充封闭曲线或者多边形,必须创建Brush对象(或者Brush类的继承类对象),用来确定填充的颜色。例如下面的代码,创建了一个填充红色的画刷对象。在最后的括号里,用Color结构指定的枚举值,确定画刷的颜色。限于篇幅有关Color结构这里不展开,可能在后续博文里介绍。

Dim RedBrush As New SolidBrush(Color.Red)

vb.net 绘图,重绘知识

继承(Inherits)控件就可以重写它的属性和方法,图标可以在paint中重绘,用gdi,工具主要在drawing和drawing2d中。

combobox弹出的框增加图标吗?个人看法可能需要得到那个句柄,才可以重绘,但那个好像是一体的,不知道能不能弄到句柄。

textbox可以自定义高度。只是以行高度为单位,改变字体大小即可,没必要重写吧。

我也自学,感觉基础容易学,进阶资料少。循序渐进也没序可循,基本是在摸索。

都是想到什么问题,就立下一个目标,然后攻破他,结果可能是尝试几天后,发现目标超出能力范围。

晦涩是相对的,实践出真知,多动手,基础就好了。


名称栏目:包含vbnet绘图丢失的词条
文章URL:http://cdkjz.cn/article/dodjpep.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220