Dibujar rectángulo en formulario

25/08/2006 - 18:47 por Jose2500 | Informe spam
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.

El código que utilizo es éste:

Dim Grafico As System.Drawing.Graphics
Dim Lapiz As New System.Drawing.Pen(System.Drawing.Color.Black)

Grafico = Me.CreateGraphics
Grafico.DrawRectangle(Lapiz, X, Y, Ancho, Alto)

El rectángulo se dibuja bien, el problema es que cuando lo cambio de
posición mediante código queda solapado por otros controles del mismo
formulario.
Lo que se necesita es que el rectángulo siempre se vea por encima de otros
controles e imágenes que puedan existir en el formulario. ¿Cómo se puede
hacer?
Gracias

Preguntas similare

Leer las respuestas

#6 Jorge Serrano [MVP VB]
28/08/2006 - 22:47 | Informe spam
Perdón, el anterior código tiene un "fallito" muy pequeño (pero fallo). Que
no quiero que nadie se me despiste:

Dim imagen As Bitmap = PictureBox1.Image
imagen.MakeTransparent(imagen.GetPixel(1, 1))
PictureBox1.Image = imagen

Ahora sí. :-)

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Jose2500" wrote:

Si, también he mirado esa posibilidad, pero hacer el fondo transparante en un
control no es tan factible como en un formulario y lo del Gif no lo he
probado. De todas formas, ya lo tengo funcionando bastante bien y no lo
cambiaré salvo que averigüe como dibujar un rectángulo con un objeto Graphics
para que quede siempre en primer plano.

Gracias por el interés Jorge.


"Jorge Serrano [MVP VB]" escribió:

> No lo he probado... pero ¿utilizando colores transparentes o un Gif
> transparente y dibujar sobre él las líneas?.
>
> A lo mejor estoy diciendo una auténtica bobada, pero... es lo que se me
> ocurre ahora mismo. O:-)
>
> Jorge Serrano Pérez
> Microsoft MVP VB.NET
> PortalVB.com
> http://www.portalvb.com/
> Blog de Jorge Serrano
> http://geeks.ms/blogs/jorge/default.aspx
>
>
> "Jose2500" wrote:
>
> > Hola Jorge,
> >
> > Es buena idea, lo que ocurre es que necesito que sólo se vean las líneas. Si
> > utilizo un PictureBox el fondo de éste solaparía lo que hubiera detrás.
> > A la espera de una solución mejor, lo que estoy haciendo es utilizar cuatro
> > controles Label de forma que simulen las líneas del rectángulo.
> >
> > Saludos Jorge.
> >
> >
> > "Jorge Serrano [MVP VB]" escribió:
> >
> > > Hola Jose,
> > >
> > > ¿No podrías utilizar un control de tipo PictureBox para dibujar en él la
> > > imagen y hacer que esta quede siempre por encima de los controles que tenga
> > > el formulario?.
> > >
> > >
> > > Jorge Serrano Pérez
> > > Microsoft MVP VB.NET
> > > PortalVB.com
> > > http://www.portalvb.com/
> > > Blog de Jorge Serrano
> > > http://geeks.ms/blogs/jorge/default.aspx
> > >
> > >
> > > "Jose2500" wrote:
> > >
> > > > Hola,
> > > > Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
> > > > formulario.
> > > >
> > > > El código que utilizo es éste:
> > > >
> > > > Dim Grafico As System.Drawing.Graphics
> > > > Dim Lapiz As New System.Drawing.Pen(System.Drawing.Color.Black)
> > > >
> > > > Grafico = Me.CreateGraphics
> > > > Grafico.DrawRectangle(Lapiz, X, Y, Ancho, Alto)
> > > >
> > > > El rectángulo se dibuja bien, el problema es que cuando lo cambio de
> > > > posición mediante código queda solapado por otros controles del mismo
> > > > formulario.
> > > > Lo que se necesita es que el rectángulo siempre se vea por encima de otros
> > > > controles e imágenes que puedan existir en el formulario. ¿Cómo se puede
> > > > hacer?
> > > > Gracias
> > > >
> > > >
Respuesta Responder a este mensaje
#7 Jose2500
29/08/2006 - 11:30 | Informe spam
Efectivamente Jorge, también funcionaría de este forma. Sólo bastaría colocar
el borde a la imagen y tendríamos el rectángulo.

Gracias de nuevo


"Jorge Serrano [MVP VB]" escribió:

Perdón, el anterior código tiene un "fallito" muy pequeño (pero fallo). Que
no quiero que nadie se me despiste:

Dim imagen As Bitmap = PictureBox1.Image
imagen.MakeTransparent(imagen.GetPixel(1, 1))
PictureBox1.Image = imagen

Ahora sí. :-)

Jorge Serrano Pérez
Microsoft MVP VB.NET
PortalVB.com
http://www.portalvb.com/
Blog de Jorge Serrano
http://geeks.ms/blogs/jorge/default.aspx


"Jose2500" wrote:

> Si, también he mirado esa posibilidad, pero hacer el fondo transparante en un
> control no es tan factible como en un formulario y lo del Gif no lo he
> probado. De todas formas, ya lo tengo funcionando bastante bien y no lo
> cambiaré salvo que averigüe como dibujar un rectángulo con un objeto Graphics
> para que quede siempre en primer plano.
>
> Gracias por el interés Jorge.
>
>
> "Jorge Serrano [MVP VB]" escribió:
>
> > No lo he probado... pero ¿utilizando colores transparentes o un Gif
> > transparente y dibujar sobre él las líneas?.
> >
> > A lo mejor estoy diciendo una auténtica bobada, pero... es lo que se me
> > ocurre ahora mismo. O:-)
> >
> > Jorge Serrano Pérez
> > Microsoft MVP VB.NET
> > PortalVB.com
> > http://www.portalvb.com/
> > Blog de Jorge Serrano
> > http://geeks.ms/blogs/jorge/default.aspx
> >
> >
> > "Jose2500" wrote:
> >
> > > Hola Jorge,
> > >
> > > Es buena idea, lo que ocurre es que necesito que sólo se vean las líneas. Si
> > > utilizo un PictureBox el fondo de éste solaparía lo que hubiera detrás.
> > > A la espera de una solución mejor, lo que estoy haciendo es utilizar cuatro
> > > controles Label de forma que simulen las líneas del rectángulo.
> > >
> > > Saludos Jorge.
> > >
> > >
> > > "Jorge Serrano [MVP VB]" escribió:
> > >
> > > > Hola Jose,
> > > >
> > > > ¿No podrías utilizar un control de tipo PictureBox para dibujar en él la
> > > > imagen y hacer que esta quede siempre por encima de los controles que tenga
> > > > el formulario?.
> > > >
> > > >
> > > > Jorge Serrano Pérez
> > > > Microsoft MVP VB.NET
> > > > PortalVB.com
> > > > http://www.portalvb.com/
> > > > Blog de Jorge Serrano
> > > > http://geeks.ms/blogs/jorge/default.aspx
> > > >
> > > >
> > > > "Jose2500" wrote:
> > > >
> > > > > Hola,
> > > > > Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
> > > > > formulario.
> > > > >
> > > > > El código que utilizo es éste:
> > > > >
> > > > > Dim Grafico As System.Drawing.Graphics
> > > > > Dim Lapiz As New System.Drawing.Pen(System.Drawing.Color.Black)
> > > > >
> > > > > Grafico = Me.CreateGraphics
> > > > > Grafico.DrawRectangle(Lapiz, X, Y, Ancho, Alto)
> > > > >
> > > > > El rectángulo se dibuja bien, el problema es que cuando lo cambio de
> > > > > posición mediante código queda solapado por otros controles del mismo
> > > > > formulario.
> > > > > Lo que se necesita es que el rectángulo siempre se vea por encima de otros
> > > > > controles e imágenes que puedan existir en el formulario. ¿Cómo se puede
> > > > > hacer?
> > > > > Gracias
> > > > >
> > > > >
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida