C sharp - colección de controles de un formulario

 
Vista:

colección de controles de un formulario

Publicado por pplu (25 intervenciones) el 04/01/2005 18:02:31
Hola, tengo un problema de con la colección de controles de un formulario.
Tengo los controles que tengo en el formulario en la colección del mismo, y accedo a ellos por la posición (me guardo en un array la posición de cada control, con objeto de poder acceder a él).
El problema que tengo es que cada vez que hago un bringToFront me pasa ese control a la posición 0 de la colección del formulario, y me desplaza todos los demás una posición, con lo que ya no me valen las posiciones que había guardado en el array.
Hay alguna forma de evitar que cambie los controles de posición en la colección o de acceder a los controles de la colección por el nombre (pero sin recorrer toda la colección)?
Os agradecería mucho una ayudita.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:colección de controles de un formulario

Publicado por pplu (25 intervenciones) el 05/01/2005 10:42:50
Hola,
Alguien sabe si hay alguna forma de usar el método IndexOf de Control.ControlCollection sin tener una instancia del control?
La única forma que tengo de acceder a una instancia del control es recorrer toda la colección?
Gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:colección de controles de un formulario

Publicado por Yamil Bracho (1164 intervenciones) el 05/01/2005 14:21:10
Si puede usar IndexOf para buscar un elemento dentro de la coleccion...
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:colección de controles de un formulario

Publicado por pplu (25 intervenciones) el 05/01/2005 15:12:09
Gracias Yamil,
pero me gustaría acceder a la colección de controles del formulario para poder coger una instancia de los controles que tengo. El problema que tengo es que para usar el IndexOf necesito una instancia del objeto que busco, que es precisamente lo que pretendo conseguir.
Sabe alguien alguna forma de usar el IndexOf u otro método para poder obtener una instancia de un control de la colección a partir del nombre del control?
Muchas gracias.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 158
Bronce
Ha disminuido 1 puesto en C sharp (en relación al último mes)
Gráfica de C sharp

RE:colección de controles de un formulario

Publicado por Yamil Bracho (1164 intervenciones) el 05/01/2005 20:11:11
Todos los controles de un formulario son descedientes de la clase Control. IndexOf te retorna un Object que es el padre de todas las clases, asi que si quieres obtener el tipo especifico del control que te retorno IndexOf aplicale un cast a control y despues usas el operador is para ver que tipo especifico de control es. Por ejemplo

Control ctl = ( Control) collecion.IndexOf( control_a_buscar);
if ( ctl is TextBox ) {
}
....
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:colección de controles de un formulario

Publicado por santiago (12 intervenciones) el 09/01/2005 03:55:28
Un momento ..

Varias cosas ..

Primero .
IndexOf devuelve un entero ..vease lo siguiente

int index = Controls.IndexOf(this.miControl);

etc etc et c

Segundo ..

No hay manera de obtener en una sola linea la instancia de un control solo por el nomre sin embargo .. ahi va algo ..

public Control GetInstance(string controlName,Control container)
{
foreach(Control c in container.Controls)
if (c.Name == controlName)
return c;
return null;

}

.. gracias

Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar