Problema herencia formularios

10/10/2004 - 10:55 por Alberto | Informe spam
Todos los formularios de mi aplicación tienen un aspecto similar por lo que
decidí crear una ficha base y que el resto heredasen de ella. En concreto,
todas mis fichas llevan en la parte superior un texto que indica su razón de
ser ("mantenimiento de ..." por ejemplo). Debido a eso, el constructor de la
ficha base requiere un string con dicho título. Cuando implemento las fichas
descendientes, escribo esto en su constructor:

public frmEmpleados(string Titulo) : base(Titulo)

Funciona perfectamente pero tengo un grandísimo problema: en tiempo de
diseño no puedo ver las fichas. Al hacer doble clic sobre ellas me aparece
el siguiente mensaje:

Error al cargar el documento.Excepción al crear una instancia de
<proyecto>.frmBase. Excepción "No se encontró un constructor en el tipo
frmBase"


Os agradezco cualquier ayuda

Preguntas similare

Leer las respuestas

#1 Zephryn Xirdal
10/10/2004 - 11:39 | Informe spam
Supongo que aparte del constructor que recibe el string debes tener un
constructor por defecto vacío:

public base()
{
//Hacer aquí las llamadas por defecto
}
public base(string titulo)
{
base()
m_lblTitulo.Texto=titulo;
}

Así, el diseñador cogerá el constructor por defecto y te creará la ficha...
aunque creo que no va a ser tan inteligente como para mostrarte los títulos
cambiados en las heredadas.

En otros entornos, podrías hacer perrerías con el código, que el entorno era
lo suficientemente inteligente como para entenderlas (¿alguien ha editado a
mano un .dfm?).

El zephryn, que está un tanto nostálgico.
El mundo no fue hecho en el tiempo, sino con el tiempo.
Powered by zxFortune http://sourceforge.net/projects/zxfortune


"Alberto" escribió en el mensaje
news:
Todos los formularios de mi aplicación tienen un aspecto similar por lo
que decidí crear una ficha base y que el resto heredasen de ella. En
concreto, todas mis fichas llevan en la parte superior un texto que indica
su razón de ser ("mantenimiento de ..." por ejemplo). Debido a eso, el
constructor de la ficha base requiere un string con dicho título. Cuando
implemento las fichas descendientes, escribo esto en su constructor:

public frmEmpleados(string Titulo) : base(Titulo)

Funciona perfectamente pero tengo un grandísimo problema: en tiempo de
diseño no puedo ver las fichas. Al hacer doble clic sobre ellas me aparece
el siguiente mensaje:

Error al cargar el documento.Excepción al crear una instancia de
<proyecto>.frmBase. Excepción "No se encontró un constructor en el tipo
frmBase"


Os agradezco cualquier ayuda





Respuesta Responder a este mensaje
#2 Alberto
10/10/2004 - 12:23 | Informe spam
No tenía el constructor vacío pero lo cree para ver qué ocurría y tampoco
funciona.
Gracias por la ayuda.

"Zephryn Xirdal" escribió en el
mensaje news:%
Supongo que aparte del constructor que recibe el string debes tener un
constructor por defecto vacío:

public base()
{
//Hacer aquí las llamadas por defecto
}
public base(string titulo)
{
base()
m_lblTitulo.Texto=titulo;
}

Así, el diseñador cogerá el constructor por defecto y te creará la
ficha... aunque creo que no va a ser tan inteligente como para mostrarte
los títulos cambiados en las heredadas.

En otros entornos, podrías hacer perrerías con el código, que el entorno
era lo suficientemente inteligente como para entenderlas (¿alguien ha
editado a mano un .dfm?).

El zephryn, que está un tanto nostálgico.
El mundo no fue hecho en el tiempo, sino con el tiempo.
Powered by zxFortune http://sourceforge.net/projects/zxfortune


"Alberto" escribió en el mensaje
news:
Todos los formularios de mi aplicación tienen un aspecto similar por lo
que decidí crear una ficha base y que el resto heredasen de ella. En
concreto, todas mis fichas llevan en la parte superior un texto que
indica su razón de ser ("mantenimiento de ..." por ejemplo). Debido a
eso, el constructor de la ficha base requiere un string con dicho título.
Cuando implemento las fichas descendientes, escribo esto en su
constructor:

public frmEmpleados(string Titulo) : base(Titulo)

Funciona perfectamente pero tengo un grandísimo problema: en tiempo de
diseño no puedo ver las fichas. Al hacer doble clic sobre ellas me
aparece el siguiente mensaje:

Error al cargar el documento.Excepción al crear una instancia de
<proyecto>.frmBase. Excepción "No se encontró un constructor en el tipo
frmBase"


Os agradezco cualquier ayuda









Respuesta Responder a este mensaje
#3 Octavio Hernandez
10/10/2004 - 12:49 | Informe spam
Alberto,

La herencia visual de formularios funciona, he hecho cosas parecidas a esa
que dices.
¿Tus clases-formulario han sido creadas manualmente mediante código o
utilizando el entorno de VS.NET? Lo digo porque si las has creado a mano,
probablemente no respetes la estructura que el diseñador espera de una clase
creada por él (sección con el método InitializeComponents() etc.)
Por otro lado, ese constructor en principio no te sería imprescindible, pues
puedes asignar la propiedad Text de los formularios heredados en tiempo de
diseño. Pero no pasa nada si lo añades:

public Form2 (string titulo) : base()
{
Text = titulo;
}

Salu2 - Octavio

"Alberto" escribió en el mensaje
news:
No tenía el constructor vacío pero lo cree para ver qué ocurría y tampoco
funciona.
Gracias por la ayuda.

"Zephryn Xirdal" escribió en el
mensaje news:%
> Supongo que aparte del constructor que recibe el string debes tener un
> constructor por defecto vacío:
>
> public base()
> {
> //Hacer aquí las llamadas por defecto
> }
> public base(string titulo)
> {
> base()
> m_lblTitulo.Texto=titulo;
> }
>
> Así, el diseñador cogerá el constructor por defecto y te creará la
> ficha... aunque creo que no va a ser tan inteligente como para mostrarte
> los títulos cambiados en las heredadas.
>
> En otros entornos, podrías hacer perrerías con el código, que el entorno
> era lo suficientemente inteligente como para entenderlas (¿alguien ha
> editado a mano un .dfm?).
>
> El zephryn, que está un tanto nostálgico.
> El mundo no fue hecho en el tiempo, sino con el tiempo.


Latina.
> Powered by zxFortune http://sourceforge.net/projects/zxfortune
>
>
> "Alberto" escribió en el mensaje
> news:
>> Todos los formularios de mi aplicación tienen un aspecto similar por lo
>> que decidí crear una ficha base y que el resto heredasen de ella. En
>> concreto, todas mis fichas llevan en la parte superior un texto que
>> indica su razón de ser ("mantenimiento de ..." por ejemplo). Debido a
>> eso, el constructor de la ficha base requiere un string con dicho


título.
>> Cuando implemento las fichas descendientes, escribo esto en su
>> constructor:
>>
>> public frmEmpleados(string Titulo) : base(Titulo)
>>
>> Funciona perfectamente pero tengo un grandísimo problema: en tiempo de
>> diseño no puedo ver las fichas. Al hacer doble clic sobre ellas me
>> aparece el siguiente mensaje:
>>
>> Error al cargar el documento.Excepción al crear una instancia de
>> <proyecto>.frmBase. Excepción "No se encontró un constructor en el tipo
>> frmBase"
>>
>>
>> Os agradezco cualquier ayuda
>>
>>
>>
>>
>>
>
>


Respuesta Responder a este mensaje
#4 Alberto
10/10/2004 - 14:09 | Informe spam
Muchas gracias. Lo probaré.

Saludos
"Octavio Hernandez" escribió en el mensaje
news:
Alberto,

La herencia visual de formularios funciona, he hecho cosas parecidas a esa
que dices.
¿Tus clases-formulario han sido creadas manualmente mediante código o
utilizando el entorno de VS.NET? Lo digo porque si las has creado a mano,
probablemente no respetes la estructura que el diseñador espera de una
clase
creada por él (sección con el método InitializeComponents() etc.)
Por otro lado, ese constructor en principio no te sería imprescindible,
pues
puedes asignar la propiedad Text de los formularios heredados en tiempo de
diseño. Pero no pasa nada si lo añades:

public Form2 (string titulo) : base()
{
Text = titulo;
}

Salu2 - Octavio

"Alberto" escribió en el mensaje
news:
No tenía el constructor vacío pero lo cree para ver qué ocurría y tampoco
funciona.
Gracias por la ayuda.

"Zephryn Xirdal" escribió en el
mensaje news:%
> Supongo que aparte del constructor que recibe el string debes tener un
> constructor por defecto vacío:
>
> public base()
> {
> //Hacer aquí las llamadas por defecto
> }
> public base(string titulo)
> {
> base()
> m_lblTitulo.Texto=titulo;
> }
>
> Así, el diseñador cogerá el constructor por defecto y te creará la
> ficha... aunque creo que no va a ser tan inteligente como para
> mostrarte
> los títulos cambiados en las heredadas.
>
> En otros entornos, podrías hacer perrerías con el código, que el
> entorno
> era lo suficientemente inteligente como para entenderlas (¿alguien ha
> editado a mano un .dfm?).
>
> El zephryn, que está un tanto nostálgico.
> El mundo no fue hecho en el tiempo, sino con el tiempo.


Latina.
> Powered by zxFortune http://sourceforge.net/projects/zxfortune
>
>
> "Alberto" escribió en el mensaje
> news:
>> Todos los formularios de mi aplicación tienen un aspecto similar por
>> lo
>> que decidí crear una ficha base y que el resto heredasen de ella. En
>> concreto, todas mis fichas llevan en la parte superior un texto que
>> indica su razón de ser ("mantenimiento de ..." por ejemplo). Debido a
>> eso, el constructor de la ficha base requiere un string con dicho


título.
>> Cuando implemento las fichas descendientes, escribo esto en su
>> constructor:
>>
>> public frmEmpleados(string Titulo) : base(Titulo)
>>
>> Funciona perfectamente pero tengo un grandísimo problema: en tiempo de
>> diseño no puedo ver las fichas. Al hacer doble clic sobre ellas me
>> aparece el siguiente mensaje:
>>
>> Error al cargar el documento.Excepción al crear una instancia de
>> <proyecto>.frmBase. Excepción "No se encontró un constructor en el
>> tipo
>> frmBase"
>>
>>
>> Os agradezco cualquier ayuda
>>
>>
>>
>>
>>
>
>






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