Hola, les cuento mi problema. Yo kiero que sobre una imágen cuándo el usuario hace click (la x e y deben cumplir q estén en unas determinadas zonas)se haga un círculo que tenga por centro ese punto. El caso es q cuándo ejecuto por primera vez el programa si q m dibuja el círculo pero si a continuación pincho otra zona del picturebox para que me haga en ese sitio otro círculo, no lo dibuja, no lo entiendo
El código q tengo es el siguiente. Gracia
Private Sub PictureBox1_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDow
pt = New Point(e.X, e.Y
x = e.
y = e.
'cada vez q pincho búskeda en listvie
PerteneceACirculo(x, y
End Su
Private Sub PerteneceACirculo(ByVal x, ByVal y
Dim i, xs, ys As Intege
For i = 0 To ListView1.Items.Count -
coordx = ListView1.Items(i).SubItems(2).Tex
coordy = ListView1.Items(i).SubItems(3).Tex
If coordx - radio >= 0 The
xi = coordx - radi
Els
xi =
End I
If coordy - radio >= 0 The
yi = coordy - radi
Els
yi =
End I
ys = coordy + radi
xs = coordx + radi
If x >= xi And x <= xs And y >= yi And y <= ys The
id = ListView1.Items(i).Tex
txtSintomatologia.Text = i
descripcion = ListView1.Items(i).SubItems(1).Tex
ToolTip1.SetToolTip(PictureBox1, descripcion
Exit Su
End I
Nex
End Su
Private Sub PintarCirculo(ByVal control As Control, ByVal gr As System.Drawing.Graphics
'si la descripcion no tiene valor no hay nada que dibujar
If descripcion = Nothing Then Exit Su
With g
'Rectángulo en el que está definida la figura a pinta
Dim rectangulo As New Rectangle(xi, yi, radio * 2, radio * 2
'Lápiz que se utiliza para la líne
Dim lapiz As New System.Drawing.Pen(System.Drawing.Color.Red, 5
'Función del GDI+ para pinta
gr.DrawEllipse(lapiz, rectangulo
End Wit
End Su
Private Sub Pintar(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PictureBox1.Pain
PintarCirculo(sender, e.Graphics
End Su
Mara
Ver este tema:
http://www.softwaremix.net/viewtopic-478932.htm
Enviado desde
http://www.softwaremix.net
Leer las respuestas