鼠标画直线
我想用VB.net写一个画直线的类
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class Form1
Dim startPoint As Point
Dim endPoint As Point
Dim isMouseDown As Boolean = False
Private Sub pctbox_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pctbox.MouseDown
isMouseDown = True
startPoint.X = e.X
startPoint.Y = e.Y
End Sub
Private Sub pctbox_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pctbox.MouseMove
Dim bmp As New Bitmap(pctbox.ClientSize.Width, pctbox.ClientSize.Height)
If isMouseDown Then
endPoint.X = e.X
endPoint.Y = e.Y
Dim mygraphics As Graphics = Graphics.FromImage(bmp)
mygraphics.DrawLine(Pens.Black, startPoint, endPoint)
pctbox.Image = bmp
End If
End Sub
Private Sub pctbox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles pctbox.MouseUp
isMouseDown = False
End Sub
End Class
但是这个只能画一条,当画另一条时,第一条就删掉了
怎么才能画多条???
在线等待中
注:pctbox是picturebox控件
[解决办法]
你试一下这个:我刚刚改的:
Imports System.Drawing
Imports System.Drawing.Drawing2D
Public Class Form1
Dim _GraphicPic As Graphics
Dim startPoint As Point
Dim endPoint As Point
Dim isMouseDown As Boolean = False
Private Sub pctbox_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pctbox.MouseDown
isMouseDown = True
startPoint.X = e.X
startPoint.Y = e.Y
End Sub
Private Sub pctbox_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pctbox.MouseMove
If isMouseDown Then
endPoint.X = e.X
endPoint.Y = e.Y
End If
End Sub
Private Sub pctbox_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Pctbox.MouseUp
_GraphicPic.DrawLine(Pens.Black, startPoint, endPoint)
isMouseDown = False
End Sub
Private Sub Pctbox_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Pctbox.Paint
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
_GraphicPic = Pctbox.CreateGraphics()
End Sub
End Class
[解决办法]
去我的博客看看,有源码的
http://blog.csdn.net/wzuomin/archive/2006/12/13/1441007.aspx