Discussion:
Dibujar rectángulo en formulario
(demasiado antiguo para responder)
Jose2500
2006-08-25 16:47:02 UTC
Permalink
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
Jorge Serrano [MVP VB]
2006-08-27 14:58:02 UTC
Permalink
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jose2500
2006-08-28 08:58:02 UTC
Permalink
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jorge Serrano [MVP VB]
2006-08-28 13:05:01 UTC
Permalink
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jose2500
2006-08-28 15:58:01 UTC
Permalink
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jorge Serrano [MVP VB]
2006-08-28 20:46:02 UTC
Permalink
Hola Jose,

he probado lo de la imagen transparente como por ejemplo con el siguiente
código:

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

Pero creo que no funciona. :-(

Una lata... :-(
--
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jorge Serrano [MVP VB]
2006-08-28 20:47:02 UTC
Permalink
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Jose2500
2006-08-29 09:30:02 UTC
Permalink
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
Post by Jorge Serrano [MVP VB]
Perdón, el anterior código tiene un "fallito" muy pequeño (pero fallo). Que
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
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.
Post by Jorge Serrano [MVP VB]
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
Post by Jose2500
Hola,
Necesito dibujar un rectángulo de forma que el rectángulo se mueva por un
formulario.
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
Continúe leyendo en narkive:
Loading...