首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

鼠标画直线解决办法

2012-01-05 
鼠标画直线我想用VB.net写一个画直线的类ImportsSystem.DrawingImportsSystem.Drawing.Drawing2DPublicCla

鼠标画直线
我想用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

热点排行