Foro de elhacker.net

Programación => .NET (C#, VB.NET, ASP) => Mensaje iniciado por: GonzaFz en 31 Mayo 2012, 05:19 am



Título: Ayuda para hacer ComboBox dinamicos.
Publicado por: GonzaFz en 31 Mayo 2012, 05:19 am
Bueno para ser simple y rapido, esto es en C#.
Necesito hacer unos combobox "dinamicos", me refiero a por ejemplo esos que te hacen elegir el Pais, y dependiendo cual pongas te muestra una lista de provincias.

Basicamente quiero hacer lo mismo, la unica forma que se me ocurrio y probe fue haciendo lo siguiente:

Código
  1. private void mision_SelectedIndexChanged(object sender, EventArgs e)
  2.        {
  3.  
  4.            if (mision.SelectedIndex == 0)
  5.            {
  6.                nmision.Items.Add("1"); // AGREGAR AL SEGUNDO COMBOBOX
  7.            }
  8.        }
  9.  
pero si luego vuelves a cambiar el primer combobox envez de cambiar la lista, agrega mas opciones.

Me gustaria si me pudiesen ayudar.
Gracias =).

PD: Me falto agregar que cada tipo de opcion debe tener un ID distinto a los anteriores ya que luego tengo que comprobar si esta seleccionado
Código
  1. if (mision.SelectedIndex == 0)
  2. {
  3.      if (nmision.SelectedIndex == 15)
  4. {
  5.  // HACER ALGO
  6. }
  7. }
  8.  
  9.  


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: $Edu$ en 31 Mayo 2012, 18:10 pm
Pero puede ser buena forma la que usas, solo te falto borrar los items.

Es decir, tenemos el combox Pais con todas las lista de los paises, ya ordenados, y otro debajo que se llama combox Provincias que contiene la lista de las provincias de tu primer pais seleccionado por default en tu combox Pais, por ejemplo Argentina (que empieza con A).

Si elejimos un pais en el combox Pais, se ejecutara tu evento combopais_SelectedIndexChanged() y ahi haces un switch dependiendo la seleccion:

Código
  1.  
  2. comboxProvincias.BorrarItems(); // esto ves vos como es, yo no me acuerdo ahora mismo. pero tienes que borrar todos los items.
  3.  
  4. switch (comboxPais.SelectedIndex)  // luego el switch
  5. {
  6.   case 0:  // supongamos que el 0 es Uruguay
  7.    comboxProvincias.Items.Add("Artigas");
  8.    comboxProvincias.Items.Add("Soriano");
  9.    comboxProvincias.Items.Add("Tacuarembo");
  10.    ...
  11.    ...
  12.    break;
  13.  
  14.  case 1:
  15.   //agregar las provincias como arriba, y asi con todos
  16.   break;
  17.  
  18. ...
  19. ...
  20. ...
  21. }
  22.  
  23.  

No se si es lo que buscas pero asi funcionaran digo yo los clasicos de elegir pais y te muestra las provincias.


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: seba123neo en 31 Mayo 2012, 21:14 pm
si tendrias una base de datos queda mas elegante que poner los items fijos en el codigo.

aunque tambien esta la solucion de crear una clase con el ID y nombre, y luego usar la propiedad .DataSource del combo para hacer un "SELECT" (como si fuera una base de datos, pero sobre una coleccion de clases, asi te trae todos los que coinciden con el ID seleccionado, es re facil.

How can one ComboBox's items be determined by another? (http://stackoverflow.com/questions/9442833/how-can-one-comboboxs-items-be-determined-by-another)





Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: GonzaFz en 1 Junio 2012, 01:02 am
si tendrias una base de datos queda mas elegante que poner los items fijos en el codigo.

aunque tambien esta la solucion de crear una clase con el ID y nombre, y luego usar la propiedad .DataSource del combo para hacer un "SELECT" (como si fuera una base de datos, pero sobre una coleccion de clases, asi te trae todos los que coinciden con el ID seleccionado, es re facil.

How can one ComboBox's items be determined by another? (http://stackoverflow.com/questions/9442833/how-can-one-comboboxs-items-be-determined-by-another)





Pase el codigo a C# pero una parte no me funciona..
Código
  1. _with2.DataSource = CountryList.Where(f => f.ContinentID = mision.SelectedValue).ToList;

Seria esa linea (mision es mi combobox principal). Me marca que mision.SelectedValue no puede pasar de Objet a int..

Y si le pongo == me marca toda la linea diciendo que == no se puede aplicar en int y object ..


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: $Edu$ en 1 Junio 2012, 15:49 pm
Fijate cual es int y cual es objet y converti el objet a int. Por lo menos es lo que te dice el error..


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: GonzaFz en 1 Junio 2012, 23:02 pm
¿Se hace con este codigo?
Código
  1. int max = int.Parse(mision.SelectedValue);


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: $Edu$ en 1 Junio 2012, 23:31 pm
Probalo xD


Título: Re: Ayuda para hacer ComboBox dinamicos.
Publicado por: GonzaFz en 1 Junio 2012, 23:40 pm
Sucede que estoy de viaje y no tengo donde xD Pero me gustaria aclarar esta duda asi cuando vuelvo puedo terminar el programa ;) xD!.

Bueno pero si no te acuerdas me tocara esperar y probarlo jaja.