Herencia

10/05/2008 - 20:34 por Javier Lozano | Informe spam
Saludos compañeros

Tengo el siguiente caso :

- Uso Visual Studio 2005 Standard Edition y .Net Framework 2.0 SP1

- He creado un user control, llamemoslo MyTextBox, que hereda directamente
de la clase TextBox

public class MyTextBox : TextBox (bla,bla,bla.)

- La clase MyTextBox tiene defiido en el constructor una linea de codigo
para asignar el font :
this.Font = new Font("Verdana",9)

- Este control lo pego en una forma, corro el ejemplito, todo perfecto.

- Ahora quiero cambiar el font de la clase MyTextBox, y lo defino a 12
puntos:

this.Font = new Font("Verdana",12)

- Compilo y corro la aplicacion, el textbox de la forma tiene el font
Verdana, pero en 9 puntos!!!

Segun lo que entiendo de herencia, el control pegado dentro de la forma
deberia automaticametne heredar las propiedades del control base. (Yo vengo
de programar en VFP y toda la vida a funcionado asi). Que sucede si
avanzando en mi proyecto me animo a cambiar de font a toda mi aplicacion.
Tendria que barrer todos y cada uno de los lugares de mi proyecto para
actualizar manualmente el font????

Espero puedan ayudarme a solucionar este problema

Gracias de antemano

Javier Lozano
Lima-Peru

Preguntas similare

Leer las respuestas

#1 Alberto Poblacion
11/05/2008 - 09:34 | Informe spam
"Javier Lozano" wrote in message
news:
- Uso Visual Studio 2005 Standard Edition y .Net Framework 2.0 SP1

- He creado un user control, llamemoslo MyTextBox, que hereda directamente
de la clase TextBox

public class MyTextBox : TextBox (bla,bla,bla.)

- La clase MyTextBox tiene defiido en el constructor una linea de codigo
para asignar el font :
this.Font = new Font("Verdana",9)

- Este control lo pego en una forma, corro el ejemplito, todo perfecto.

- Ahora quiero cambiar el font de la clase MyTextBox, y lo defino a 12
puntos:

this.Font = new Font("Verdana",12)

- Compilo y corro la aplicacion, el textbox de la forma tiene el font
Verdana, pero en 9 puntos!!!



No veo nada claro lo que intentas hacer. ¿DONDE, exactamente, haces lo de
"this.Font = new Font("Verdana",12)", que el control aparentemente está
ignorando, conforme con tu descripción? Si lo haces en el Form, estás
cambiando el Font del Form, no el del textbox.


Segun lo que entiendo de herencia, el control pegado dentro de la forma
deberia automaticametne heredar las propiedades del control base.



Ojo, el control base es el control del que heredas, no el control contenedor
donde lo ubicas. En otras palabras, MyTextBox hereda las propiedades de
TextBox, que a su vez hereda de TextBoxBase, que a su vez hereda de Control,
que hereda de Component, que hereda de MarshallByRefObject. En ningún
momento hay una herencia de Form.

Que sucede si avanzando en mi proyecto me animo a cambiar de font a toda
mi aplicacion. Tendria que barrer todos y cada uno de los lugares de mi
proyecto para actualizar manualmente el font????



Si no les cambias el Font en el constructor, entonces los textboxes
copian el Font del formulario contenedor (ojo, no heredan la propiedad, solo
copian el valor).
Respuesta Responder a este mensaje
#2 Javier Lozano
11/05/2008 - 18:31 | Informe spam
Gracias por responder

El cambio lo hago en el constructor de la clase MyTextbox



"Alberto Poblacion" wrote
in message news:
"Javier Lozano" wrote in message
news:
- Uso Visual Studio 2005 Standard Edition y .Net Framework 2.0 SP1

- He creado un user control, llamemoslo MyTextBox, que hereda
directamente de la clase TextBox

public class MyTextBox : TextBox (bla,bla,bla.)

- La clase MyTextBox tiene defiido en el constructor una linea de codigo
para asignar el font :
this.Font = new Font("Verdana",9)

- Este control lo pego en una forma, corro el ejemplito, todo perfecto.

- Ahora quiero cambiar el font de la clase MyTextBox, y lo defino a 12
puntos:

this.Font = new Font("Verdana",12)

- Compilo y corro la aplicacion, el textbox de la forma tiene el font
Verdana, pero en 9 puntos!!!



No veo nada claro lo que intentas hacer. ¿DONDE, exactamente, haces lo de
"this.Font = new Font("Verdana",12)", que el control aparentemente está
ignorando, conforme con tu descripción? Si lo haces en el Form, estás
cambiando el Font del Form, no el del textbox.


Segun lo que entiendo de herencia, el control pegado dentro de la forma
deberia automaticametne heredar las propiedades del control base.



Ojo, el control base es el control del que heredas, no el control
contenedor donde lo ubicas. En otras palabras, MyTextBox hereda las
propiedades de TextBox, que a su vez hereda de TextBoxBase, que a su vez
hereda de Control, que hereda de Component, que hereda de
MarshallByRefObject. En ningún momento hay una herencia de Form.

Que sucede si avanzando en mi proyecto me animo a cambiar de font a toda
mi aplicacion. Tendria que barrer todos y cada uno de los lugares de mi
proyecto para actualizar manualmente el font????



Si no les cambias el Font en el constructor, entonces los textboxes
copian el Font del formulario contenedor (ojo, no heredan la propiedad,
solo copian el valor).



email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida