Bonjours à tous et à toutes!
Voilà, j'ais un picturebox,dedans j'y met un petit déssin:
Dim NewGraphic
As Graphics = PictureBox1.CreateGraphics()
Dim blackPen
As
New Pen(Color.Black, 1)
NewGraphic.DrawRectangle(blackPen, 100, 100, 40, 20)
NewGraphic.DrawLine(blackPen, 130, 100, 110, 120)
Je peut y créer un rectangle de sélection:
'Les coordonnees utilisees pour dessiner notre rectangle
Private Xstart, Ystart, Xend, Yend
As
Integer
Private
Sub PictureBox1_MouseDown(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseDown
'Si click gauche
If e.Button = MouseButtons.Left
Then
'Initialisation des coordonnesXstart = e.X
Ystart = e.Y
Xend = e.X
Yend = e.Y
'Declaration du rectangle
Dim r
As Rectangle
'On dessine le rectangle en utilisant la fonction RectangleToScreen
'qui convertie les coordonnes du rectangle par rapport a l'ecranr = PictureBox1.RectangleToScreen(
New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
'On dessine un rectangle inversee qui laissera visible l'interieur du rectangleControlPaint.DrawReversibleFrame(r,
Me.BackColor, FrameStyle.Dashed)
End
If
'End If
End
Sub
Private
Sub PictureBox1_MouseMove(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseMove
'Quand clique gauche
If e.Button = MouseButtons.Left
Then
'On efface l'ancien rectangle
Dim r
As Rectangle
r = PictureBox1.RectangleToScreen(
New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r,
Me.BackColor, FrameStyle.Dashed)
'Nouvelles coordonnees de la souris quand on la bougeXend = e.X
Yend = e.Y
'On redessine le rectangle avec les nouvelles coordonnes de la sourisr = PictureBox1.RectangleToScreen(
New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r,
Me.BackColor, FrameStyle.Dashed)
End
If
End
Sub
Private
Sub PictureBox1_MouseUp(
ByVal sender
As
Object,
ByVal e
As System.Windows.Forms.MouseEventArgs)
Handles PictureBox1.MouseUp
If e.Button = MouseButtons.Left
Then
'On efface le dernier rectangle
Dim r
As Rectangle
r = PictureBox1.RectangleToScreen(
New Rectangle(Xstart, Ystart, Xend - Xstart, Yend - Ystart))
ControlPaint.DrawReversibleFrame(r,
Me.BackColor, FrameStyle.Dashed)
End
If
End
Sub
Donc Comment faire pour sélectionner ce petit déssin , le déplacer et le mettre ailleur dans ma picturebox?
Merci beaucoup par avance!!!
Afficher la suite