繪製矩形

摘要:繪製矩形

繪圖部分一直是我不熟悉的領域,最近想弄一些東西應該會來研究一下,下面這段程式在Form上面按住左鍵後移動滑鼠便會畫出矩形,算是第一步吧 ~

  1. Dim BG As Bitmap  
  2. Dim G As Graphics  
  3.   
  4. Dim IsMouseDown As Boolean = False  
  5. Dim P_Start As New Point  
  6.   
  7. Private Sub frmEdit_Load(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles MyBase.Load  
  8. Me.Show()  
  9. Application.DoEvents()  
  10. BG = New Bitmap(PictureBox1.Width, PictureBox1.Height)  
  11. G = Graphics.FromImage(BG)  
  12. End Sub  
  13.   
  14. Private Sub PictureBox1_MouseDown(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown  
  15. IsMouseDown = True  
  16. P_Start = e.Location  
  17. End Sub  
  18.   
  19. Private Sub PictureBox1_MouseMove(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseMove  
  20. If IsMouseDown Then  
  21. G.Clear(Color.Transparent)  
  22. If e.X - P_Start.X > 0 Then  
  23. If e.Y - P_Start.Y > 0 Then  
  24. G.DrawRectangle(New Pen(Color.Pink, 2), _  
  25. New Rectangle( _  
  26. P_Start.X, P_Start.Y, e.X - P_Start.X, e.Y - P_Start.Y))  
  27. Else  
  28. G.DrawRectangle(New Pen(Color.Pink, 2), _  
  29. New Rectangle( _  
  30. P_Start.X, e.Y, e.X - P_Start.X, P_Start.Y - e.Y))  
  31. End If  
  32. Else  
  33. If P_Start.Y - e.Y > 0 Then  
  34. G.DrawRectangle(New Pen(Color.Pink, 2), _  
  35. New Rectangle( _  
  36. e.X, e.Y, P_Start.X - e.X, P_Start.Y - e.Y))  
  37. Else  
  38. G.DrawRectangle(New Pen(Color.Pink, 2), _  
  39. New Rectangle( _  
  40. e.X, P_Start.Y, P_Start.X - e.X, e.Y - P_Start.Y))  
  41. End If  
  42. End If  
  43. PictureBox1.Image = BG  
  44. End If  
  45. End Sub  
  46.   
  47. Private Sub PictureBox1_MouseUp(ByVal sender As ObjectByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseUp  
  48. G.Clear(Color.Transparent)  
  49. IsMouseDown = False  
  50. End Sub