2015-11-09 19 views
-1

我完成了我的程序,只有2件事要做。但是現在讓我們關注一下我的主要問題:我已經獲得了一個代碼,它可以讓用戶在繪圖箱內畫圖,稍後將作爲簽名使用。一切工作正常,直到我添加了第二個相同的代碼picturebox(是的,我改變了前例picturebox1 pixturebox2)。當我開始繪畫的時候,我不能放手,同時這兩個畫框都會被隔離。 這是我的兩個pictureboxes的代碼。Vb.net 2簽名

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 

我知道有一些錯誤,但我很高興看到它。

回答

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) 

將修復它。

+0

我改變了,現在有一些改變的原因如果我開始畫picturebox2然後它不會與picturebox1交互。但如果我從picturebox1開始,那麼同樣的錯誤發生,我不按我的鼠標鍵,但它不會停止行動。 –