Clases y Objetos

17/05/2005 - 16:59 por SpDFox | Informe spam
Hola todos.

He creado una clase basada en un UserControl, le he agregado 2 botones.
Hasta aquí todo bien.

Luego cree un formulario y le agregue una instancia de la clase que cree,
pero como hago si quiero programar algo en los botones que agregue a la
clase???

Saludos...

Ing. David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia

Preguntas similare

Leer las respuestas

#11 David Amador T.
17/05/2005 - 22:36 | Informe spam
Gracias Juan Carlos por la explicación. Ya comprendi.

Pero me esta pasando algo curioso; en el formulario donde creo la instancia
del UserControl los objetos de este no son visibles... ¿Porque?

Saludos..

Ing. David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia


"Tristan" escribió en el mensaje
news:
Mostrar la cita
nada
Mostrar la cita
click
Mostrar la cita
#12 Tristan
17/05/2005 - 23:04 | Informe spam
¿Te refieres a los objetos del usercontrol?.

Pero es que precisamente que se viesen sería incorrecto. A eso se refería
Eduardo al hablar de encapsulación. Un objeto no debe dejar ver su mecánica
interna. ¿Por qué?. Pues por que a cambio de ahorrar unas pocas lineas de
código, cuando modifiques el interior del objeto tendrás que modificar todas
las aplicaciones que lo utilicen. ¿Que pasaría si tu botón deja de ser un
botón y lo sustituyes por otra cosa?

Pero en realidad probablemente si tienes acceso a los objetos del
UserControl, al menos si no has modificado el tipo de acceso por defecto. Al
estar declarados como Friend, puedes acceder a ellos desde cualquier clase
del ensamblado (proyecto) actual. Si tu formulario y tu control de usuario
están en el mismo ensamblado, tendrás acceso a sus controles internos. Si
has definido tu control en un ensamblado (dll) distinto, no tendrás acceso a
ellos.

Para acceder a tus botones sería así:

tuUserControl1.Button1.Text = "No se debe hacer!!!!!!"

Pero claro, estarás de acuerdo en que es una barbaridad que una aplicación
pueda cambiar el texto de los botones de tu control, ¿no?. En realidad yo
cambiaría la propiedad Modifiers de los controles internos para que sean
privados.

Cualquier acceso desde el exterior a un objeto interno, debe definirse como
una propiedad, método o evento de tu control de usuario, ya sea creando uno
nuevo o sobreescribiendo (override) los que existan.

Juan Carlos Badiola
MVP - C#
#13 Eduardo A. Morcillo [MS MVP VB]
17/05/2005 - 23:25 | Informe spam
Me parece que dice que no ve los controles en el diseñador cuando agrega el
control al formulario. Pueden ser varias cosas. Una que los controles esten
fuera del rectangulo ocupado por el UC y por lo tanto no se vean. Otra
posibilidad es que no hayas vuelto a compilar el proyecto luego de agregar
los controles al UC. A diferencia de VB6 el diseñador de .net necesita la
version compilada de los controles para mostrarlos.

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
#14 David Amador T.
18/05/2005 - 00:12 | Informe spam
Encontre el detalle!!!! ... habia omitido lo siguiente

Public Sub New()
MyBase.New()

InitializeComponent()
End Sub

Y por eso no se creaban los objetos en el Formulario.

Gracias de nuevo por ayudarme a trabajar con este tipo de controles. Yo
desarrollo es en Visual Fox Pro y algunas cosas son más sencillas con este
lenguaje.

Slaudos..
Ing. David Amador Tapia
WebMaster "La Web de Davphantom"
www.davphantom.net
Cartagena. Colombia

"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:%
Mostrar la cita
el
Mostrar la cita
esten
Mostrar la cita
#15 Carlos Gómez
18/05/2005 - 00:32 | Informe spam
Ok, Tiene toda la razón en los tres puntos.
Gracias por la aclaración.


"Eduardo A. Morcillo [MS MVP VB]" <emorcillo .AT. mvps.org> escribió en el
mensaje news:
Mostrar la cita
Ads by Google
Search Busqueda sugerida