Vb.net 2签名

时间:2015-11-09 07:33:55

标签: vb.net signature

我完成了我的程序,还有2件事要做。但是现在让我们专注于我的主要问题:我有一个代码,它使用户可以在一个图片框内绘图,这将在以后作为签名工作。一切都工作正常,直到我添加了第二个具有相同代码的图片框(是的,我改为ex.picturebox1到pixturebox2)。当我开始绘画时,我不能放手,两个图片盒同时被交叉。 这是我的两个图片盒的代码。

  Private _Previous As System.Nullable(Of Point) = Nothing
Private Sub pictureBox1_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseDown
    _Previous = e.Location
    pictureBox1_MouseMove(sender, e)
End Sub
Private Sub pictureBox1_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox1.MouseMove
    If _Previous IsNot Nothing Then
        If PictureBox1.Image Is Nothing Then
            Dim bmp As New Bitmap(PictureBox1.Width, PictureBox1.Height)
            Using g As Graphics = Graphics.FromImage(bmp)
                g.Clear(Color.White)
            End Using
            PictureBox1.Image = bmp
        End If
        Using g As Graphics = Graphics.FromImage(PictureBox1.Image)
            g.DrawLine(Pens.Black, _Previous.Value, e.Location)
        End Using
        PictureBox1.Invalidate()
        _Previous = e.Location
    End If
End Sub

Private Sub pictureBox2_MouseDown(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox2.MouseDown
    _Previous = e.Location
    pictureBox1_MouseMove(sender, e)
End Sub

Private Sub pictureBox2_MouseMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox2.MouseMove
    If _Previous IsNot Nothing Then
        If PictureBox2.Image Is Nothing Then
            Dim bmp As New Bitmap(PictureBox2.Width, PictureBox2.Height)
            Using g As Graphics = Graphics.FromImage(bmp)
                g.Clear(Color.White)
            End Using
            PictureBox2.Image = bmp
        End If
        Using g As Graphics = Graphics.FromImage(PictureBox2.Image)
            g.DrawLine(Pens.Black, _Previous.Value, e.Location)
        End Using
        PictureBox2.Invalidate()
        _Previous = e.Location
    End If
End Sub

Private Sub pictureBox2_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles PictureBox2.MouseUp
    _Previous = Nothing
End Sub

我知道有一些错误,但我很高兴看到它。

1 个答案:

答案 0 :(得分:0)

在PictureBox2的此事件处理程序中,您调用PictureBox1的处理程序:

Private Sub pictureBox2_MouseDown(ByVal sender As Object, _
    ByVal e As MouseEventArgs) Handles PictureBox2.MouseDown

    _Previous = e.Location
    pictureBox1_MouseMove(sender, e)
End Sub

我猜它改为:

pictureBox2_MouseMove(sender, e)

会解决它。

相关问题