Definstance para todos los Windows Forms

09/06/2006 - 12:10 por moondance | Informe spam
Estoy desarrollando en C# 2.0 una aplicación con varios formularios.
Uso la propiedad definstance añadida en cada uno de ellos (ver otros
temas del grupo). El problema es que tengo que añadirla formulario por
formulario, con lo que ello conlleva. Me gustaría saber como puedo
hacer para crear una propiedad genérica y no tener que repetir el
código en cada formulario. Con Generics, quizás se podría, pero no
veo como...

Gracias
 

Leer las respuestas

#1 moondance
12/06/2006 - 10:00 | Informe spam
Bueno, he probado a extender la funcionalidad de Windows Forms, pero me
pasa como con la herencia visual, es decir, muestra el formulario base,
y no el heredado con sus controles. El código es el siguiente:

public class NForm : Form
{
private static NForm m_FormDefInstance;
private static bool m_InicializandoDefInstance;
public static NForm DefInstance
{
get
{
if (m_FormDefInstance == null ||
m_FormDefInstance.IsDisposed)
{
m_InicializandoDefInstance = true;
m_FormDefInstance = new NForm();
}
return m_FormDefInstance;
}
set
{
m_FormDefInstance = value;
}
}
}


Si yo creo mis formularios a partir de aquí heredando de NForm, al
mostrar su instancia por defecto, como comentaba, me muestra el
formulario base NForm que a su vez hereda de Form. ¿Qué estoy
haciendo mal?
Vyacheslav Popov wrote:
> Si no te he entendido mal, se trata de agrupar todos los formularios en
> una clase contenedora o en una coleccion, no?. Eso lo había pensado ya, y
> creo que es la solución menos mala, aunque pensaba en algún tipo de
> propiedad genérica. Otra opción es crear una clase nueva que herede de
> Windows.Forms, pero el problema viene a la hora de usar el diseñador del
> IDE, puesto que tendría problemas con casi total seguridad.

Creo que tienes razón, es mejor extender la funcionalidad a Windows.Form.
El diseñador del IDE no da ningún problema, al menos en los formularios
Windows.

Preguntas similares