可以把所有畫的線都保存在一個列表中,畫的時候全部畫出即可。如下:
10年積累的成都網站制作、做網站經驗,可以快速應對客戶對網站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網絡服務。我雖然不認識你,你也不認識我。但先網站制作后付款的網站建設流程,更有卡若免費網站建設讓你可以放心的選擇與我們合作。
Public?Class?Form1
Class?Line? ? ? '直線類
? Public?Point1,?Point2?As?Point? ? ?'成員,直線的兩個端點
? Sub?New(p1?As?Point,?p2?As?Point)? ?'構造方法
? ? ? 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?'左鍵未按下
? '鼠標拖動時改變列表最后一條直線(也即當前直線的第二個端點)
? Lines(Lines.Count?-?1).Point2?=?e.Location
? Refresh()? ? ? ?'刷新罩盯禪窗體
End?Sub
'在Form的Paint事件中繪制所有直線,每次則棗Form1重繪時都會觸發Paint事件
'PS:?也可以通過重寫OnPaint方法來達到類似的效果
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)? '調用繪制方法,傳入的參數可以理解為畫布
? Next
End?Sub
End?Class
運行效果:
'繪制圖形的陸早漏三步曲
'1,獲得一個Graphics對象
Dim MyGraphics As Graphics
MyGraphics = Me.CreateGraphics
'2,定義一個Pen對象,用于繪制圖形(輪廓線)
Dim MyPen As New Pen(Color.Black)
'3,定義一個Brush對象,用于填充圖形(如果需要填充的話)
Dim MyBrush As New SolidBrush(Color.Orange)
MyGraphics.FillEllipse(MyBrush, 200, 200, 100, 100) '繪制一個實心圓,該圓在:直線x=200,y=200,睜源x=200+100,y=200+100所劃的矩形區域早爛內
MyGraphics.DrawEllipse(MyPen, 200, 200, 100, 100) '繪制一個空心圓,該圓在:直線x=200,y=200,x=200+100,y=200+100所劃的矩形區域內
要用GreateGrahpics函數,比如要老手向 Panel1,填充顏色:
Dim g As Graphic=Panel1.CreateGraphics
Dim b as New Brush(Color.Blue)
g.FillRectangle(b,Panel1)
寫的比較粗,意思就是這樣的,侍棚嫌和碰你可以邊看幫助邊細細完成
這問題有點籠統,軟旁跡胡糖來說說把:
圖像處理由System.Drawing命名空間負責。
主要是Bitmap類和Graphics類。
Bitmap表示一個位圖,可以是BMP,JPG,PNG等文件。
裝載位圖
Dim?位圖?As?Bitmap?=?Bitmap.FromFile("C:\Image1.PNG")
Graphics表示一州悔張畫紙,能夠進行繪制操作。
它可以被窗體、控件、位圖調用CreateGraphics()方法來創建。
然后調用Graphics.Draw開頭的一系列函數來繪制圖像和圖形,Fill開頭的填充圖形。
創建畫紙并繪制位圖
Dim?畫紙?As?Graphics?=?Me.CreateGraphics()
畫紙.DrawImage(位圖,?100,?100,?256,?256)
可以將上面三行放到Form1_Load中測試運攔,把路徑改一下,
還可以把Me改為能在上面繪圖的控件的名稱。
更多內容請看MSDN的System.Drawing命名空間。
如滿意,請采納,謝謝。
分享名稱:vb點虐
畫布 vbnet畫圖插件
分享路徑:http://m.newbst.com/article46/ddpohhg.html
成都網站建設公司_創新互聯,為您提供虛擬主機、企業建站、微信小程序、全網營銷推廣、、外貿網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯