你想的以及接近了,要達(dá)到你要的效果,需要使用多線程,寫入數(shù)據(jù)庫和顯示繪圖的結(jié)果各一個(gè)線程

創(chuàng)新互聯(lián)公司專注于慶元網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供慶元營(yíng)銷型網(wǎng)站建設(shè),慶元網(wǎng)站制作、慶元網(wǎng)頁設(shè)計(jì)、慶元網(wǎng)站官網(wǎng)定制、成都微信小程序服務(wù),打造慶元網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供慶元網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
換成form1的Load事件就不能畫圖了:
是因?yàn)閒orm1在Load的時(shí)候,它還不能創(chuàng)建圖形界面,也就不能執(zhí)行 Me.CreateGraphics
代碼:
Public?Class?Form1
'*********************************************************************???
'作者:章魚哥,QQ:3107073263?群:309816713???????
'如有疑問或好的建議請(qǐng)聯(lián)系我,大家一起進(jìn)步?????
'*********************************************************************?????
'繪制圓角矩形函數(shù)
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
'矩形的位置和長(zhǎng)寬隨著窗體的變化而改變
Dim?Rec?As?New?Rectangle(Int(Wid?/?5),?Int(Hei?/?5),?Int(Wid?/?2),?Int(Hei?/?2))
'??g.DrawRectangle(Pen,?Rec)
'清楚現(xiàn)有的矩形
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()?'此函數(shù)可引發(fā)Paint事件
End?Sub
End?Class
效果截圖:
原窗口:
縮小后:
繪圖代碼寫在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()
1. 創(chuàng)建一個(gè)Graphics對(duì)象實(shí)例。
繪制圖形必須創(chuàng)建Graphics對(duì)象。如果是在窗體上繪圖,要使用下列代碼創(chuàng)建Graphics對(duì)象;
Dim MyGraphics As Graphics = Me.CreateGraphics
如果是在PictrueBox里繪圖,要使用下列代碼創(chuàng)建Graphics對(duì)象;
Dim MyGraphics As Graphics = PictureBox1.CreateGraphics
2. 定義一個(gè)Brush對(duì)象,用來填充圖形(如果你需要填充的話)。
如果填充封閉曲線或者多邊形,必須創(chuàng)建Brush對(duì)象(或者Brush類的繼承類對(duì)象),用來確定填充的顏色。例如下面的代碼,創(chuàng)建了一個(gè)填充紅色的畫刷對(duì)象。在最后的括號(hào)里,用Color結(jié)構(gòu)指定的枚舉值,確定畫刷的顏色。限于篇幅有關(guān)Color結(jié)構(gòu)這里不展開,可能在后續(xù)博文里介紹。
Dim RedBrush As New SolidBrush(Color.Red)
繼承(Inherits)控件就可以重寫它的屬性和方法,圖標(biāo)可以在paint中重繪,用gdi,工具主要在drawing和drawing2d中。
combobox彈出的框增加圖標(biāo)嗎?個(gè)人看法可能需要得到那個(gè)句柄,才可以重繪,但那個(gè)好像是一體的,不知道能不能弄到句柄。
textbox可以自定義高度。只是以行高度為單位,改變字體大小即可,沒必要重寫吧。
我也自學(xué),感覺基礎(chǔ)容易學(xué),進(jìn)階資料少。循序漸進(jìn)也沒序可循,基本是在摸索。
都是想到什么問題,就立下一個(gè)目標(biāo),然后攻破他,結(jié)果可能是嘗試幾天后,發(fā)現(xiàn)目標(biāo)超出能力范圍。
晦澀是相對(duì)的,實(shí)踐出真知,多動(dòng)手,基礎(chǔ)就好了。
本文題目:包含vbnet繪圖丟失的詞條
本文網(wǎng)址:http://chinadenli.net/article48/dodjpep.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供全網(wǎng)營(yíng)銷推廣、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)公司、用戶體驗(yàn)、定制開發(fā)、企業(yè)網(wǎng)站制作
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)