Ayuda con el selectedIndex en clase propia

26/07/2006 - 23:54 por Juan Suarez | Informe spam
Hola que tal?

Para ahorrar tiempo cuando se esta programandohe ido haciendo estas
clases propias(Habilitar, Deshabilitar, limpiar...etc)ha sido realmente
complicado porque ando empezando con esto.

private void Limpiar()
{
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "1")
{
control.SelectedIndex= 0;
}
}
}


1) Porque no puedo asignarle un valor al SelectedIndex a traves de la
variable control????
si lo hago a traves de Combo.SelectedIndex = 0; funciona perfectamente; pero
la idea es ser dinamico. Como podria hacerlo???
2) Como puedo hace para que dentro de los parentesis private void Limpiar()
pueda poner parametros?
ej: private void Limpiar(string NombreControl, string tag, string Accion),
para que mi funcion quede de la ste manera:

switch Accion
case "Habilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= true;
}
}
case "Deshabilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= false;
}
}

y asi sucesivamente...

Quisiera saber como se pueden construir ese tipo de clases y donde se
guardan para poder llamarlas desde cualquier proyecto.

Suerte y de antemano muchas gracias por la ayuda que me puedan brindar.


Juan Suarez

Preguntas similare

Leer las respuestas

#1 Arturo
27/07/2006 - 00:16 | Informe spam
Juan Suarez ha escrito:

Hola que tal?

Para ahorrar tiempo cuando se esta programandohe ido haciendo estas
clases propias(Habilitar, Deshabilitar, limpiar...etc)ha sido realmente
complicado porque ando empezando con esto.

private void Limpiar()
{
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "1")
{
control.SelectedIndex= 0;
}
}
}


1) Porque no puedo asignarle un valor al SelectedIndex a traves de la
variable control????
si lo hago a traves de Combo.SelectedIndex = 0; funciona perfectamente; pero
la idea es ser dinamico. Como podria hacerlo???




Me parece que antes de establecerle una propiedad debes convertir la
variable al tipo apropiado, asi:

((ComboBox)control).SelectedIndex= 0;

Prueba y me dices si funciona
Respuesta Responder a este mensaje
#2 Juan Suarez
27/07/2006 - 15:12 | Informe spam
Hola que tal?

Es precisamente lo que andaba buscando.

Muchas gracias.

Juan Suarez
"Arturo" escribió en el mensaje
news:

Juan Suarez ha escrito:

Hola que tal?

Para ahorrar tiempo cuando se esta programandohe ido haciendo estas
clases propias(Habilitar, Deshabilitar, limpiar...etc)ha sido
realmente
complicado porque ando empezando con esto.

private void Limpiar()
{
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "1")
{
control.SelectedIndex= 0;
}
}
}


1) Porque no puedo asignarle un valor al SelectedIndex a traves de la
variable control????
si lo hago a traves de Combo.SelectedIndex = 0; funciona perfectamente;
pero
la idea es ser dinamico. Como podria hacerlo???




Me parece que antes de establecerle una propiedad debes convertir la
variable al tipo apropiado, asi:

((ComboBox)control).SelectedIndex= 0;

Prueba y me dices si funciona

Respuesta Responder a este mensaje
#3 Arturo
27/07/2006 - 16:10 | Informe spam
2) Como puedo hace para que dentro de los parentesis private void Limpiar()
pueda poner parametros?
ej: private void Limpiar(string NombreControl, string tag, string Accion),
para que mi funcion quede de la ste manera:

switch Accion
case "Habilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= true;
}
}
case "Deshabilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= false;
}
}

y asi sucesivamente...



Tambien podrias hacer lo siguiente:
private void Limpiar(bool[] estados)
{

// estados es un arreglo de valores bool que se utilizaran para
// fijar el estado de el control. Cada elemento de estados se
corresponde
// con un elemento de la colleción Controls del groupBox1 (o de un
form)
for(int i=0;i<groupBox1.Controls.Count;i++)
{
groupBox1.Controls[i].Enable=estados[i];

}

}



Quisiera saber como se pueden construir ese tipo de clases y donde se
guardan para poder llamarlas desde cualquier proyecto.



Al elegir Nuevo proyecto,seleccionas la plantilla correspondiente a
"Bibiotecas de clase".
Para poder llamarla desde cualquier proyecto
1)Deberás agregar este proyecto a la solución en la que deseas
utilizar la biblioteca.
2)Luego, en el proyecto deberás agregar una referencia a dicha
biblioteca.

Espero que te sirva

Saludos
Respuesta Responder a este mensaje
#4 Juan Suarez
27/07/2006 - 17:23 | Informe spam
Muchas gracias. Voy a probarlo.

Suerte.

Juan Suarez
"Arturo" escribió en el mensaje
news:

2) Como puedo hace para que dentro de los parentesis private void
Limpiar()
pueda poner parametros?
ej: private void Limpiar(string NombreControl, string tag, string
Accion),
para que mi funcion quede de la ste manera:

switch Accion
case "Habilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= true;
}
}
case "Deshabilitar":
foreach(Control control in groupBox1.Controls)
{
if (control is ComboBox && (string) control.Tag == "2")
{
control.Enable= false;
}
}

y asi sucesivamente...



Tambien podrias hacer lo siguiente:
private void Limpiar(bool[] estados)
{

// estados es un arreglo de valores bool que se utilizaran para
// fijar el estado de el control. Cada elemento de estados se
corresponde
// con un elemento de la colleción Controls del groupBox1 (o de un
form)
for(int i=0;i<groupBox1.Controls.Count;i++)
{
groupBox1.Controls[i].Enable=estados[i];

}

}



Quisiera saber como se pueden construir ese tipo de clases y donde se
guardan para poder llamarlas desde cualquier proyecto.



Al elegir Nuevo proyecto,seleccionas la plantilla correspondiente a
"Bibiotecas de clase".
Para poder llamarla desde cualquier proyecto
1)Deberás agregar este proyecto a la solución en la que deseas
utilizar la biblioteca.
2)Luego, en el proyecto deberás agregar una referencia a dicha
biblioteca.

Espero que te sirva

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