Numerar ventanas MDI

08/09/2005 - 13:19 por abibiano | Informe spam
Tengo una aplicación MDI en la que permito abrir varias instancias de la
misma ventanas hijas.

Todas las ventanas hijas heredan de una ventana plantilla.

Mi idea es codificar en el evento Load de las ventanas de forma que añanda
al nombre de cada ventana un número correlativo (solo correlativo para la
misma ventana). Por ejemplo, si tengo la ventana "usuarios" y "maquinas", y
abro 3 instancias de la ventana usuarios, y 2 de la ventana maquinas, debería
tener 5 ventnas abiertas con los siguientes nombres:
Usuarios 1
Usuarios 2
Usuarios 3
Maquinas 1
Maquinas 2

Bien, esto lo consiguo poniendo una variable static en la ventana, y sumando
un 1 al abrir la ventana y restandolo al cerrar:

evento LOAD

this.Text = this.Text + " " + NumeroVentana;
NumeroVentana++;

donde NumeroVentana es private Static.

Mi pregunta es si existe alguna manera de codificar esto en la plantilla de
todas las ventanas, en lugar de en cada ventana herdedada.

Lo he probado, y como la plantilla comparte la variable estatica con todas
las ventanas, no funciona bien.

¿Alguna idea?
 

Leer las respuestas

#1 Octavio Hernandez
08/09/2005 - 15:15 | Informe spam
A,

Sí que se puede hacer algo... Yo le pondría a la ventana hija MDI base,
además de la variable estática NumeroVentana (el contador de la cantidad de
ventanas que se van creando) una variable no estática (de instancia) que se
inicializa en el constructor de esa clase base. Y en el constructor
generaría el número y asignaría el título. Algo así:
private static int contador = 0;

private int numero;

public HijaBase()

{

InitializeComponent();

contador++;

numero = contador;

this.Text = "Ventana " + numero;

}

// ...

Slds - Octavio





"abibiano" escribió en el mensaje
news:
Tengo una aplicación MDI en la que permito abrir varias instancias de la
misma ventanas hijas.

Todas las ventanas hijas heredan de una ventana plantilla.

Mi idea es codificar en el evento Load de las ventanas de forma que añanda
al nombre de cada ventana un número correlativo (solo correlativo para la
misma ventana). Por ejemplo, si tengo la ventana "usuarios" y "maquinas",
y
abro 3 instancias de la ventana usuarios, y 2 de la ventana maquinas,
debería
tener 5 ventnas abiertas con los siguientes nombres:
Usuarios 1
Usuarios 2
Usuarios 3
Maquinas 1
Maquinas 2

Bien, esto lo consiguo poniendo una variable static en la ventana, y
sumando
un 1 al abrir la ventana y restandolo al cerrar:

evento LOAD

this.Text = this.Text + " " + NumeroVentana;
NumeroVentana++;

donde NumeroVentana es private Static.

Mi pregunta es si existe alguna manera de codificar esto en la plantilla
de
todas las ventanas, en lugar de en cada ventana herdedada.

Lo he probado, y como la plantilla comparte la variable estatica con todas
las ventanas, no funciona bien.

¿Alguna idea?

Preguntas similares