Arreglo de objetos

07/09/2004 - 18:19 por Anonimo | Informe spam
En VB6 al copiar un objeto en un form y pegarlo sobre el
mismo me genera un arreglo de controles y se manejaban con
un índice, como puedo hacer esto gráficamente en C#???

Preguntas similare

Leer las respuestas

#6 Octavio Hernandez
09/09/2004 - 00:18 | Informe spam
Privet, Vyacheslav!

perdona pero no entiendo ¿porque necesitas crear otra instacia si ya la


has
creado?
public Button[] botones = new Button[20];



Con esta instrucción

public Button[] botones = new Button[20];

se crea sólo el contenedor (un objeto de la clase System.Array) pero no las
instancias concretas de los botones... Luego hay que crear los botones uno a
uno con:

botones[i] = new Button();

y asignar valores a sus propiedades.

Y otra cosa, creo que te falta asociar el boton a un contenedor...



Ahí si tienes razón, debí haber añadido también la línea

this.Controls.Add(botones[i]);

para agregar los botones al formualrio.

Saludos,

Octavio
Respuesta Responder a este mensaje
#7 Vyacheslav Popov
09/09/2004 - 14:04 | Informe spam
"Octavio Hernandez" escribió en el mensaje
news:%
Privet, Vyacheslav!

> perdona pero no entiendo ¿porque necesitas crear otra instacia si ya la
has
> creado?
> public Button[] botones = new Button[20];

Con esta instrucción

public Button[] botones = new Button[20];

se crea sólo el contenedor (un objeto de la clase System.Array) pero no


las
instancias concretas de los botones... Luego hay que crear los botones uno


a
uno con:

botones[i] = new Button();

y asignar valores a sus propiedades.



Perdona por molestias,
pero entonces el array (contenedor) ha de ser global ¿no?, porque al salir
del hambito se destrue por el recolector de basura... y el objeto Controls
es de clase System.Array ¿no?

> Y otra cosa, creo que te falta asociar el boton a un contenedor...

Ahí si tienes razón, debí haber añadido también la línea

this.Controls.Add(botones[i]);

para agregar los botones al formualrio.

Saludos,

Octavio




Respuesta Responder a este mensaje
#8 Octavio Hernandez
09/09/2004 - 23:09 | Informe spam
Vyacheslav,

pero entonces el array (contenedor) ha de ser global ¿no?, porque al salir
del hambito se destrue por el recolector de basura... y el objeto Controls
es de clase System.Array ¿no?



Según yo lo había pensado, el array de botones no es local a ningún método,
se declara como un campo más de la clase. Su ámbito es exactamente el mismo
que el de Controls, lo único que Controls es heredado y Botones es propio de
nuestro formulario. Después de ejecutar nuestro bucle (incluyendo la
creación de cada botón y la llamada a Controls.Add() como tú decías), a cada
uno los objetos botón habrá dos referencias: una desde el array Botones y
otra desde el array Controls.

Cuando se haga Dispose() al formulario, los recursos de Windows asociados a
los botones se liberarán, porque pertenecen a la lista de controles del
formulario. Y cuando no queden referencias al formulario, .NET sabrá que
esos arrays internos y los objetos a los que apuntan son basura
reciclable

Eto tol'ko moio mnenie!

Salu2 - Octavio
Respuesta Responder a este mensaje
#9 Octavio Hernandez
09/09/2004 - 23:11 | Informe spam
Vyacheslav,

Y otra cosa, creo que te falta asociar el boton a un contenedor...



Otra cosa en la que falla mi código es que hice public el array de botones,
y debe ser private (si es público cualquiera desde fuera lo podrá "tocar").

Slds,

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