我原來找到的代碼是這樣,是在表單上畫的,可以運行
我想改成在picturebox上畫,都是線就不跟隨滑鼠了怎么辦
這個是原來在表單上的代碼:
Private Sub Form1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseDown ' 當滑鼠左鍵被按下時,把DrawState設為True,表示落筆開始畫線
Dim g As Graphics = Me.CreateGraphics If e.Button = Windows.Forms.MouseButtons.Left Then DrawState = True ' 設定畫圖狀態
PreX = e.X ' PreX和PreY保存了線條的起點。
PreY = e.Y
End If
End Sub
Private Sub Form1_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove ' 當滑鼠移動時,如果處于畫線狀態,則在(PreX,PreY)與(X,Y)之間畫一條直線
Dim g As Graphics = Me.CreateGraphics
If DrawState = True Then
g.DrawLine(eP, PreX, PreY, e.X, e.Y)
PreX = e.X
PreY = e.Y
End If
End Sub
Private Sub Form1_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseUp ' 當釋放滑鼠左鍵時,解除畫線狀態
If e.Button = Windows.Forms.MouseButtons.Left Then
DrawState = False
End If
End Sub
Private Sub Form1_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
g = Me.CreateGraphics
End Sub
End Class
我改之后的:(好像還是在表單上挪滑鼠才會有反應,而且線條不跟隨滑鼠)
Public Class Form1
Dim DrawState As Boolean
Dim PreX As Single
Dim PreY As Single
Dim eP As New Pen(Color.Black, 3) ' 構造黑色畫筆,并將它賦給物件變數eP
Dim g As Graphics
' 在表單上構造一塊畫布,并將它賦給物件變數g
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
' 將DrawState初始化為False,表示提筆
DrawState = False
End Sub
Private Sub Form1_MouseDown(sender As Object, e As MouseEventArgs) Handles MyBase.MouseDown
' 當滑鼠左鍵被按下時,把DrawState設為True,表示落筆開始畫線
g = PictureBox3.CreateGraphics()
If e.Button = Windows.Forms.MouseButtons.Left Then
DrawState = True ' 設定畫圖狀態
PreX = MousePosition.X
' PreX和PreY保存了線條的起點。
PreY = MousePosition.Y
End If
End Sub
Private Sub Form1_MouseMove(sender As Object, e As MouseEventArgs) Handles MyBase.MouseMove
' 當滑鼠移動時,如果處于畫線狀態,則在(PreX,PreY)與(X,Y)之間畫一條直線
g = PictureBox3.CreateGraphics()
If DrawState = True Then
g.DrawLine(eP, PreX, PreY, MousePosition.X, MousePosition.Y)
PreX = MousePosition.X
PreY = MousePosition.Y
End If
End Sub
Private Sub Form1_MouseUp(sender As Object, e As MouseEventArgs) Handles MyBase.MouseUp
' 當釋放滑鼠左鍵時,解除畫線狀態
If e.Button = Windows.Forms.MouseButtons.Left Then
End If
DrawState = False
End Sub
Private Sub Form1_Resize(sender As Object, e As EventArgs) Handles MyBase.Resize
g = PictureBox3.CreateGraphics()
End Sub
Private Sub GroupBox1_Enter(sender As Object, e As EventArgs) Handles GroupBox1.Enter
End Sub
uj5u.com熱心網友回復:
既然改用 PictureBox 操作,那么MouseDown、MouseMove、MouseUp也要改用 PictureBox 的事件啊!uj5u.com熱心網友回復:
但是他說picturebox里沒有mousebutton什么的引數…uj5u.com熱心網友回復:
誰說的?出門右轉精神病院。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/106544.html
標籤:網絡編程
上一篇:問一個簡單的資料處理問題
