OVH Cloud OVH Cloud

DESSIN SUR CLIC DE SOURIS

1 réponse
Avatar
Titi
Bonjour =E0 tous,

J'ai un petit probleme qui me prend la T=EAte !!
J'ai test=E9 sur une picturebox dans un form, sur un clic de souris, je
dessine un carre. Ca a fonctionn=E9 quelques temps, mais maintenant =E7a
ne fonctionne plus, j'ai pourtant (je pense, rien chang=E9 !). Mais ce
qui est bizarre c'est que quand je fais un clic de souris sur ma
picturebox, je ne vois pas apparaitre le carre, mais si j'enregistre
l'image, et que j'ouvre cette image, le carre apparait.

Je fait comme ceci :

Public myBitmap As Bitmap
Public g As Graphics

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load

myBitmap =3D New Bitmap(400, 400)
g =3D Graphics.FromImage(myBitmap)

PictureBox1.Image =3D myBitmap

End Sub

Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles PictureBox1.Click
Dim r As New Rectangle(Me.PictureBox1.MousePosition.X,
Me.PictureBox1.MousePosition.Y, 10, 10)
Dim mypen As New Pen(Color.Black, 2)

g.DrawRectangle(mypen, r)

End Sub

J'espere avoir etait clair.

D'avance, merci.
Titi

1 réponse

Avatar
AntiSpam
Titi a écrit :
Bonjour à tous,

J'ai un petit probleme qui me prend la Tête !!
J'ai testé sur une picturebox dans un form, sur un clic de souris, je
dessine un carre. Ca a fonctionné quelques temps, mais maintenant ça
ne fonctionne plus, j'ai pourtant (je pense, rien changé !). Mais ce
qui est bizarre c'est que quand je fais un clic de souris sur ma
picturebox, je ne vois pas apparaitre le carre, mais si j'enregistre
l'image, et que j'ouvre cette image, le carre apparait.

Je fait comme ceci :

Public myBitmap As Bitmap
Public g As Graphics

Private Sub Form1_Load(ByVal sender As Object, ByVal e As
System.EventArgs) Handles MyBase.Load

myBitmap = New Bitmap(400, 400)
g = Graphics.FromImage(myBitmap)

PictureBox1.Image = myBitmap

End Sub

Private Sub PictureBox1_Click(ByVal sender As Object, ByVal e As
System.EventArgs) Handles PictureBox1.Click
Dim r As New Rectangle(Me.PictureBox1.MousePosition.X,
Me.PictureBox1.MousePosition.Y, 10, 10)
Dim mypen As New Pen(Color.Black, 2)

g.DrawRectangle(mypen, r)

End Sub

J'espere avoir etait clair.

D'avance, merci.
Titi



==================================================================
Bonjour, il y a un problème d'origine de coordonnèes.

Avec votre code cela fonctionne si je place la fenêtre de l'application
en haut à gauche du bureau et que je clic en haut à gauche de Form1.
Mais si je déplace la fenêtre de l'application en bas à droite de
l'écran plus rien, les coordonnées fournis par
Me.pictureBox1.MousePosition sont en dehors du picturebox.

Modifier votre code comme suit :

Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As
System.EventArgs) Handles PictureBox1.Click

Dim Evenement As System.Windows.Forms.MouseEventArgs = e
Dim r As New Rectangle(Evenement.X, Evenement.Y, 10, 10)
Dim mypen As New Pen(Color.Black, 2)

g.DrawRectangle(mypen, r)
PictureBox1.Refresh()

End Sub

A plus.