Vb.net 2 个签名

Vb.net 2 Signatures

我的程序已经完成了,只有两件事要做。但现在让我们关注我的主要问题:我有一个代码,它使用户可以在图片框内绘制,稍后将用作签名。一切正常,直到我添加了第二个具有相同代码的图片框(是的,我将 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

我知道有些地方有误,但我很高兴看到它。

在此 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)

会修复它。