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

#1 Jorge Serrano [MVP VB]
27/08/2006 - 16:58 | Informe spam
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
#2 Jose2500
28/08/2006 - 10:58 | Informe spam
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
#3 Jorge Serrano [MVP VB]
28/08/2006 - 15:05 | Informe spam
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
#4 Jose2500
28/08/2006 - 17:58 | Informe spam
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
#5 Jorge Serrano [MVP VB]
28/08/2006 - 22:46 | Informe spam
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


"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
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida