新建一個Winform,在和Form1平行的位置粘貼如下代碼
站在用戶的角度思考問題,與客戶深入溝通,找到黃石網(wǎng)站設(shè)計與黃石網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設(shè)計與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網(wǎng)站設(shè)計、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、空間域名、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋黃石地區(qū)。
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還需要其他技術(shù)以及美工。
可以把所有畫的線都保存在一個列表中,畫的時候全部畫出即可。如下:
Public?Class?Form1
Class?Line? ? ? '直線類
? Public?Point1,?Point2?As?Point? ? ?'成員,直線的兩個端點
? Sub?New(p1?As?Point,?p2?As?Point)? ?'構(gòu)造方法
? ? ? Point1?=?p1
? ? ? Point2?=?p2
? End?Sub
? Public?Sub?Draw(g?As?Graphics)? ? ? '繪制方法
? ? ? g.DrawLine(Pens.Black,?Point1,?Point2)
? End?Sub
End?Class
Private?Lines?As?New?List(Of?Line)? ? ? '列表用于保存所有畫下的直線
Private?Sub?Form1_Load(sender?As?Object,?e?As?EventArgs)?Handles?MyBase.Load
? BackColor?=?Color.White
? DoubleBuffered?=?True? ? ? ?'開啟雙緩沖可有效避免閃爍
End?Sub
Private?Sub?Form1_MouseDown(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseDown
? Lines.Add(New?Line(e.Location,?e.Location))? ? ?'在直線列表中添加直線
End?Sub
Private?Sub?Form1_MouseMove(sender?As?Object,?e?As?MouseEventArgs)?Handles?Me.MouseMove
? If?e.Button??Windows.Forms.MouseButtons.Left?Then?Return?'左鍵未按下
? '鼠標(biāo)拖動時改變列表最后一條直線(也即當(dāng)前直線的第二個端點)
? Lines(Lines.Count?-?1).Point2?=?e.Location
? Refresh()? ? ? ?'刷新窗體
End?Sub
'在Form的Paint事件中繪制所有直線,每次Form1重繪時都會觸發(fā)Paint事件
'PS:?也可以通過重寫OnPaint方法來達(dá)到類似的效果
Private?Sub?Form1_Paint(sender?As?Object,?e?As?PaintEventArgs)?Handles?Me.Paint
? e.Graphics.SmoothingMode?=?Drawing2D.SmoothingMode.AntiAlias? ? '開啟抗鋸齒
? For?Each?l?In?Lines? ? ?'遍歷所有直線
? ? ? l.Draw(e.Graphics)? '調(diào)用繪制方法,傳入的參數(shù)可以理解為畫布
? Next
End?Sub
End?Class
運行效果:
繼承(Inherits)控件就可以重寫它的屬性和方法,圖標(biāo)可以在paint中重繪,用gdi,工具主要在drawing和drawing2d中。
combobox彈出的框增加圖標(biāo)嗎?個人看法可能需要得到那個句柄,才可以重繪,但那個好像是一體的,不知道能不能弄到句柄。
textbox可以自定義高度。只是以行高度為單位,改變字體大小即可,沒必要重寫吧。
我也自學(xué),感覺基礎(chǔ)容易學(xué),進(jìn)階資料少。循序漸進(jìn)也沒序可循,基本是在摸索。
都是想到什么問題,就立下一個目標(biāo),然后攻破他,結(jié)果可能是嘗試幾天后,發(fā)現(xiàn)目標(biāo)超出能力范圍。
晦澀是相對的,實踐出真知,多動手,基礎(chǔ)就好了。
文章名稱:vb.net畫板重繪 自動重繪圖形vb
URL分享:http://vcdvsql.cn/article48/doodjhp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、Google、定制開發(fā)、動態(tài)網(wǎng)站、面包屑導(dǎo)航、虛擬主機
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)