Clases de Componentes

05/01/2005 - 13:53 por Fabian | Informe spam
Hola.. tengo el siguiete problema.. no se si lo estoy haciendo mal.. o me
falta algo, pero lo que intento hacer son controles en WinForm para poder
utilizarlos en todos los forms (dentro del mismo proyecto) y ante cualquier
cambio de este.. por supuesto.. se me actualice en los forms que los
utiliza.,

Primero agrego al proyecto una clase de componente nueva... luego voy al
codigo y le cambio el inherits por el control que necesito hacer.. por
ejemplo me queda

Public Class TextboxBase
Inherits System.Windows.Forms.TextBox
...
...

Luego le seteo las propiedades que necesite y le agrego codigo si es q hace
falta..

Luego compilo el proyecto.. lo cual me genera el .EXE

Despues en la barra de herramientas.. agrego el .EXE con lo que me muestra
todos los controles que hice..

Y finalemnte arrastro el control a un formulario y me lo crea perfectamente.

El problema que veo es que cuando me lo crea, en el codigo q genera, copia
las propiedades que tiene el control en ese momento. y entonces luego cuando
las intento cambiar la clase base.. no me lo actualiza y tengo que ir Form x
Form a quitar y volver a agregar el control..

Espero q se entienda lo q necesito..

saludos y gracias
fabián

Preguntas similare

Leer las respuestas

#1 Juan Pedro Gonzalez
05/01/2005 - 14:16 | Informe spam
Hola Fabian

Cuando incluyes el control arrastrandolo a un formlario el diseñador de
formularios incluye el codigo que considere oportuno, si quieres puedes
pegarte con el cambiando algunas propiedades de tu clase... Por ejemplo si
sobrecargas las funciones que emplea el diseñador de formularios y las pasas
a private, o friend, podrias lograr tu cometido, aunque no es nada
aconsejable pegarse con el diseñador de formularios, ya que luego pasan
cosas raras, e incluso desaparecen todos los controles del formulario (Algo
que ya me ha pasado haciendo otras cosas)...

Personalmente lo que haría sería crearlos a mano... En el constructor del
formulario tines un comentario: "'Agregar cualquier inicialización después
de la llamada a InitializeComponent()", detras de dicho comentario podrias
iniciar tu control y de esa forma el diseñador de formularios no tratara de
meter sus propiedades...

Saludos




"Fabian" escribió en el mensaje
news:#
Hola.. tengo el siguiete problema.. no se si lo estoy haciendo mal.. o me
falta algo, pero lo que intento hacer son controles en WinForm para poder
utilizarlos en todos los forms (dentro del mismo proyecto) y ante


cualquier
cambio de este.. por supuesto.. se me actualice en los forms que los
utiliza.,

Primero agrego al proyecto una clase de componente nueva... luego voy al
codigo y le cambio el inherits por el control que necesito hacer.. por
ejemplo me queda

Public Class TextboxBase
Inherits System.Windows.Forms.TextBox
...
...

Luego le seteo las propiedades que necesite y le agrego codigo si es q


hace
falta..

Luego compilo el proyecto.. lo cual me genera el .EXE

Despues en la barra de herramientas.. agrego el .EXE con lo que me muestra
todos los controles que hice..

Y finalemnte arrastro el control a un formulario y me lo crea


perfectamente.

El problema que veo es que cuando me lo crea, en el codigo q genera,


copia
las propiedades que tiene el control en ese momento. y entonces luego


cuando
las intento cambiar la clase base.. no me lo actualiza y tengo que ir Form


x
Form a quitar y volver a agregar el control..

Espero q se entienda lo q necesito..

saludos y gracias
fabián


Respuesta Responder a este mensaje
#2 Fabian
05/01/2005 - 22:02 | Informe spam
Gracias por la respuesta... he probado quitar lo que genera en el
InitializeComponent() y agregarlo debajo de este.. en el NEW.. y tambien
hace lo mismo.. cuando arrastro el control.. me genera las propiedades en el
form actual. Voy a voler a probarlo.. quiza llamando desde el new a un sub
private para ver si lo logro hacer.. Gracias

Fabián



"Juan Pedro Gonzalez" escribió en el mensaje
news:
Hola Fabian

Cuando incluyes el control arrastrandolo a un formlario el diseñador de
formularios incluye el codigo que considere oportuno, si quieres puedes
pegarte con el cambiando algunas propiedades de tu clase... Por ejemplo si
sobrecargas las funciones que emplea el diseñador de formularios y las


pasas
a private, o friend, podrias lograr tu cometido, aunque no es nada
aconsejable pegarse con el diseñador de formularios, ya que luego pasan
cosas raras, e incluso desaparecen todos los controles del formulario


(Algo
que ya me ha pasado haciendo otras cosas)...

Personalmente lo que haría sería crearlos a mano... En el constructor del
formulario tines un comentario: "'Agregar cualquier inicialización después
de la llamada a InitializeComponent()", detras de dicho comentario podrias
iniciar tu control y de esa forma el diseñador de formularios no tratara


de
meter sus propiedades...

Saludos




"Fabian" escribió en el mensaje
news:#
> Hola.. tengo el siguiete problema.. no se si lo estoy haciendo mal.. o


me
> falta algo, pero lo que intento hacer son controles en WinForm para


poder
> utilizarlos en todos los forms (dentro del mismo proyecto) y ante
cualquier
> cambio de este.. por supuesto.. se me actualice en los forms que los
> utiliza.,
>
> Primero agrego al proyecto una clase de componente nueva... luego voy


al
> codigo y le cambio el inherits por el control que necesito hacer.. por
> ejemplo me queda
>
> Public Class TextboxBase
> Inherits System.Windows.Forms.TextBox
> ...
> ...
>
> Luego le seteo las propiedades que necesite y le agrego codigo si es q
hace
> falta..
>
> Luego compilo el proyecto.. lo cual me genera el .EXE
>
> Despues en la barra de herramientas.. agrego el .EXE con lo que me


muestra
> todos los controles que hice..
>
> Y finalemnte arrastro el control a un formulario y me lo crea
perfectamente.
>
> El problema que veo es que cuando me lo crea, en el codigo q genera,
copia
> las propiedades que tiene el control en ese momento. y entonces luego
cuando
> las intento cambiar la clase base.. no me lo actualiza y tengo que ir


Form
x
> Form a quitar y volver a agregar el control..
>
> Espero q se entienda lo q necesito..
>
> saludos y gracias
> fabián
>
>


Respuesta Responder a este mensaje
#3 Juan Pedro Gonzalez
06/01/2005 - 01:37 | Informe spam
Si lo has generado a mano, sin arrastrarlo no deberí incluir los parametros
de configuracion...

Yo me refiero a que arriba del todo, fuera del generador pones el

Private MiObjeto as ObjetoCreado

y al final del New pones el me.MiObjeto = New ObjetoCreado.

Private Firend, WithEvents, con los parametros que sea...etc... Y
asegurandote que no ha quedado nada detras en el Initialize components ni
nada de nada. De esta forma cualquier cambio en el objeto cambiara en el
proyecto...

Por supuesto si el objeto viene de una DLL (Libreria de Clases o similar)
tienes que volver a generar la solucion (Siempre y cuando el proyecto de la
clase este incluido)... y te recomendaria quitar y volver a agregar la
referencia ya que a veces refrescan mal.

Vamos, yo lo que entiendo es que si en la clase Cambias el color, que te
cambie en el resto de los formularios... No que si lo cambias en la
propiedad de uno de los formularios cambie en todos los demas
formularios

Vamo que no estoy completamente seguro de haberte entendido bien...


"Fabian" escribió en el mensaje
news:u$
Gracias por la respuesta... he probado quitar lo que genera en el
InitializeComponent() y agregarlo debajo de este.. en el NEW.. y tambien
hace lo mismo.. cuando arrastro el control.. me genera las propiedades en


el
form actual. Voy a voler a probarlo.. quiza llamando desde el new a un sub
private para ver si lo logro hacer.. Gracias

Fabián



"Juan Pedro Gonzalez" escribió en el mensaje
news:
> Hola Fabian
>
> Cuando incluyes el control arrastrandolo a un formlario el diseñador de
> formularios incluye el codigo que considere oportuno, si quieres puedes
> pegarte con el cambiando algunas propiedades de tu clase... Por ejemplo


si
> sobrecargas las funciones que emplea el diseñador de formularios y las
pasas
> a private, o friend, podrias lograr tu cometido, aunque no es nada
> aconsejable pegarse con el diseñador de formularios, ya que luego pasan
> cosas raras, e incluso desaparecen todos los controles del formulario
(Algo
> que ya me ha pasado haciendo otras cosas)...
>
> Personalmente lo que haría sería crearlos a mano... En el constructor


del
> formulario tines un comentario: "'Agregar cualquier inicialización


después
> de la llamada a InitializeComponent()", detras de dicho comentario


podrias
> iniciar tu control y de esa forma el diseñador de formularios no tratara
de
> meter sus propiedades...
>
> Saludos
>
>
>
>
> "Fabian" escribió en el mensaje
> news:#
> > Hola.. tengo el siguiete problema.. no se si lo estoy haciendo mal.. o
me
> > falta algo, pero lo que intento hacer son controles en WinForm para
poder
> > utilizarlos en todos los forms (dentro del mismo proyecto) y ante
> cualquier
> > cambio de este.. por supuesto.. se me actualice en los forms que los
> > utiliza.,
> >
> > Primero agrego al proyecto una clase de componente nueva... luego voy
al
> > codigo y le cambio el inherits por el control que necesito hacer.. por
> > ejemplo me queda
> >
> > Public Class TextboxBase
> > Inherits System.Windows.Forms.TextBox
> > ...
> > ...
> >
> > Luego le seteo las propiedades que necesite y le agrego codigo si es q
> hace
> > falta..
> >
> > Luego compilo el proyecto.. lo cual me genera el .EXE
> >
> > Despues en la barra de herramientas.. agrego el .EXE con lo que me
muestra
> > todos los controles que hice..
> >
> > Y finalemnte arrastro el control a un formulario y me lo crea
> perfectamente.
> >
> > El problema que veo es que cuando me lo crea, en el codigo q genera,
> copia
> > las propiedades que tiene el control en ese momento. y entonces luego
> cuando
> > las intento cambiar la clase base.. no me lo actualiza y tengo que ir
Form
> x
> > Form a quitar y volver a agregar el control..
> >
> > Espero q se entienda lo q necesito..
> >
> > saludos y gracias
> > fabián
> >
> >
>
>


Respuesta Responder a este mensaje
#4 Fabian
13/01/2005 - 14:19 | Informe spam
Sin juan.. entendiste bien.. graciasss


"Juan Pedro Gonzalez" escribió en el mensaje
news:
Si lo has generado a mano, sin arrastrarlo no deberí incluir los


parametros
de configuracion...

Yo me refiero a que arriba del todo, fuera del generador pones el

Private MiObjeto as ObjetoCreado

y al final del New pones el me.MiObjeto = New ObjetoCreado.

Private Firend, WithEvents, con los parametros que sea...etc... Y
asegurandote que no ha quedado nada detras en el Initialize components ni
nada de nada. De esta forma cualquier cambio en el objeto cambiara en el
proyecto...

Por supuesto si el objeto viene de una DLL (Libreria de Clases o similar)
tienes que volver a generar la solucion (Siempre y cuando el proyecto de


la
clase este incluido)... y te recomendaria quitar y volver a agregar la
referencia ya que a veces refrescan mal.

Vamos, yo lo que entiendo es que si en la clase Cambias el color, que te
cambie en el resto de los formularios... No que si lo cambias en la
propiedad de uno de los formularios cambie en todos los demas
formularios

Vamo que no estoy completamente seguro de haberte entendido bien...


"Fabian" escribió en el mensaje
news:u$
> Gracias por la respuesta... he probado quitar lo que genera en el
> InitializeComponent() y agregarlo debajo de este.. en el NEW.. y tambien
> hace lo mismo.. cuando arrastro el control.. me genera las propiedades


en
el
> form actual. Voy a voler a probarlo.. quiza llamando desde el new a un


sub
> private para ver si lo logro hacer.. Gracias
>
> Fabián
>
>
>
> "Juan Pedro Gonzalez" escribió en el mensaje
> news:
> > Hola Fabian
> >
> > Cuando incluyes el control arrastrandolo a un formlario el diseñador


de
> > formularios incluye el codigo que considere oportuno, si quieres


puedes
> > pegarte con el cambiando algunas propiedades de tu clase... Por


ejemplo
si
> > sobrecargas las funciones que emplea el diseñador de formularios y las
> pasas
> > a private, o friend, podrias lograr tu cometido, aunque no es nada
> > aconsejable pegarse con el diseñador de formularios, ya que luego


pasan
> > cosas raras, e incluso desaparecen todos los controles del formulario
> (Algo
> > que ya me ha pasado haciendo otras cosas)...
> >
> > Personalmente lo que haría sería crearlos a mano... En el constructor
del
> > formulario tines un comentario: "'Agregar cualquier inicialización
después
> > de la llamada a InitializeComponent()", detras de dicho comentario
podrias
> > iniciar tu control y de esa forma el diseñador de formularios no


tratara
> de
> > meter sus propiedades...
> >
> > Saludos
> >
> >
> >
> >
> > "Fabian" escribió en el mensaje
> > news:#
> > > Hola.. tengo el siguiete problema.. no se si lo estoy haciendo mal..


o
> me
> > > falta algo, pero lo que intento hacer son controles en WinForm para
> poder
> > > utilizarlos en todos los forms (dentro del mismo proyecto) y ante
> > cualquier
> > > cambio de este.. por supuesto.. se me actualice en los forms que los
> > > utiliza.,
> > >
> > > Primero agrego al proyecto una clase de componente nueva... luego


voy
> al
> > > codigo y le cambio el inherits por el control que necesito hacer..


por
> > > ejemplo me queda
> > >
> > > Public Class TextboxBase
> > > Inherits System.Windows.Forms.TextBox
> > > ...
> > > ...
> > >
> > > Luego le seteo las propiedades que necesite y le agrego codigo si es


q
> > hace
> > > falta..
> > >
> > > Luego compilo el proyecto.. lo cual me genera el .EXE
> > >
> > > Despues en la barra de herramientas.. agrego el .EXE con lo que me
> muestra
> > > todos los controles que hice..
> > >
> > > Y finalemnte arrastro el control a un formulario y me lo crea
> > perfectamente.
> > >
> > > El problema que veo es que cuando me lo crea, en el codigo q genera,
> > copia
> > > las propiedades que tiene el control en ese momento. y entonces


luego
> > cuando
> > > las intento cambiar la clase base.. no me lo actualiza y tengo que


ir
> Form
> > x
> > > Form a quitar y volver a agregar el control..
> > >
> > > Espero q se entienda lo q necesito..
> > >
> > > saludos y gracias
> > > fabián
> > >
> > >
> >
> >
>
>


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