欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

vb.net graphic 简单的画图程序

程序员文章站 2022-05-07 21:14:03
 [vb] Public Class Form1      Dim DrawState As Boolean  &...

 [vb]
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 = Me.CreateGraphics     ' 在窗体上构造一块画布,并将它赋给对象变量g  
 
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        ' 将DrawState初始化为False,表示提笔  
        DrawState = False 
    End Sub 
 
    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 
        ' 当按住鼠标右键时,画一个直径为50的圆  
        If e.Button = Windows.Forms.MouseButtons.Right Then 
            g.DrawEllipse(eP, e.X - 25, e.Y - 25, 100, 100) 
        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 
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 = Me.CreateGraphics     ' 在窗体上构造一块画布,并将它赋给对象变量g

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' 将DrawState初始化为False,表示提笔
        DrawState = False
    End Sub

    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
        ' 当按住鼠标右键时,画一个直径为50的圆
        If e.Button = Windows.Forms.MouseButtons.Right Then
            g.DrawEllipse(eP, e.X - 25, e.Y - 25, 100, 100)
        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
End Class

改法1
 

[vb] 
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(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 
        ' 将DrawState初始化为False,表示提笔  
        DrawState = False 
    End Sub 
 
    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 
        ' 当按住鼠标右键时,画一个直径为50的圆  
        If e.Button = Windows.Forms.MouseButtons.Right Then 
            g.DrawEllipse(eP, e.X - 25, e.Y - 25, 100, 100) 
        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(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' 将DrawState初始化为False,表示提笔
        DrawState = False
    End Sub

    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
        ' 当按住鼠标右键时,画一个直径为50的圆
        If e.Button = Windows.Forms.MouseButtons.Right Then
            g.DrawEllipse(eP, e.X - 25, e.Y - 25, 100, 100)
        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