Picturebox como contenedor

11/08/2004 - 17:19 por Fernando Balderrama | Informe spam
Como hago para que un Picturebox trabaje como contenedor de otros controles.
En VB6 simplemente colocaba el control sobre el Picturebox.

Gracias de antemano


Fernando

Preguntas similare

Leer las respuestas

#6 Fernando Balderrama
11/08/2004 - 18:46 | Informe spam
Gracias



"Jesus Carmona" escribió en el mensaje
news:
Como dice Eduardo, puedes utilizar un Control de tipo panel, y si quieres
puedes utilizar la propiedad BackgroundImage para que se comporte como un
picturebox de VB6...

Espero te ayude en algo.
Saludos...
JC


"Fernando Balderrama" wrote in message
news:ep$
> Como hago para que un Picturebox trabaje como contenedor de otros
controles.
> En VB6 simplemente colocaba el control sobre el Picturebox.
>
> Gracias de antemano
>
>
> Fernando
>
>


Respuesta Responder a este mensaje
#7 Tristan
11/08/2004 - 20:09 | Informe spam
Aunque en realidad todos los controles windows forms, pueden funcionar como
contenedores. Aunque no todos funcionan como contenedores en tiempo de
diseño. Pero siempre es posible hacer:

unControlCualquiera.Controls.Add(OtroControlCualquiera)

Incluso, puesto que un Form es un Control, se puede incluir un formulario
dentro de un control.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#8 Eduardo A. Morcillo [MS MVP VB]
11/08/2004 - 22:04 | Informe spam
Tristan wrote:
Aunque en realidad todos los controles windows forms, pueden
funcionar como contenedores. Aunque no todos funcionan como
contenedores en tiempo de diseño. Pero siempre es posible hacer:

unControlCualquiera.Controls.Add(OtroControlCualquiera)



Es cierto, sin embargo creo que hay que evitar hacer este tipo de cosas
(forzar a un objeto a hacer algo para lo que no esta preparado) porque no se
puede asegurar que todo funcione como deberia ni que funcione en una proxima
version. Sobre todo cuando tienes objetos o controles que estan diseñados
para hacer el trabajo.

Incluso, puesto que un Form es un Control, se puede incluir un
formulario dentro de un control.



Siempre que le pongas TopLevel = False!

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#9 Tristan
12/08/2004 - 00:36 | Informe spam
Realmente no estoy de acuerdo.

¿Por qué entonces la colección Controls está definido en la clase Control y
no en ContainerControl o en ScrollableControl?. Entiendo que Microsoft sabía
lo que hacía. Sería lamentable impedir esa capacidad, forzando a utilizar el
api win32 para lograrlo.

Juan Carlos Badiola
MVP - C#
Respuesta Responder a este mensaje
#10 Eduardo A. Morcillo [MS MVP VB]
12/08/2004 - 02:54 | Informe spam
Lo que digo es que si hay una clase especifica para lo que se quiere no es
recomendable forzar otra clase para que la imite haciendo cosas que la clase
no espera. Ademas, que funcione con PictureBox no significa que funcione con
cualquier control. La propiedad Controls podria devolver Nothing en
cualquier control que no permita contener otros si el programador decidio
sobreescribir CreateControlsInstance y devolver Nothing. O un control en
alguna parte de su codigo puede fallar por encontrarse con un control que no
esperaba.

Entiendo que Microsoft sabía lo que hacía.



Eso no lo se. Para mi deberia haber dos colecciones Controls, una privada y
una publica. La publica deberia estar solo en los controles contenedores
(controles en los que se puede agregar otros controles creados externamente
como lo es Panel) mientras que la privada estaria disponible en Control y
permitiria agregar controles desde dentro del control y que no fueran
accesibles desde fuera de el. Hoy en dia es posible acceder a los controles
privados contenidos en un control. Por ejemplo tienes el control
NumericUpDown que a simple vista se ve como uno solo pero accediendo a su
propiedad Controls puedes obtener los dos controles que lo forman y
manipularlos como mas te guste, algo que a mi parecer es un problema en
cuanto a seguridad y no permite un verdadero encapsulamiento. Por ejemplo:

Me.NumericUpDown1.Controls.Item(1).Text = "Hola!"
Me.NumericUpDown1.Controls.RemoveAt(1)

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida