Cómo llenar un control comboBox de Windows Forms con una colección en c# .Net

Existen muchas formas de llenar un control comboBox en Windows Forms obteniendo los datos de varias fuentes. En este artículo veremos como llenarlo a través de un objeto de tipo colección (List) conteniendo objetos  tuplas (Tuple), obteniendo los datos con el que llenaremos los tuplas de los resultados de una consulta a una base de datos. El código asume que ya se abrió una conexión a la base de datos y se ejecutó una consulta y se están leyendo los datos que arrojó la misma.

 

El código está comentado para su mejor entendimiento.

/* Lista de items para el combobox, los items son representado 
   por tuplas de 2 valores: un entero y otro de tipo cadena */
List<Tuple<Int32, String>> listaItems = new List<Tuple<int, string>>();
                
// Leemos los registros 
while (lector.Read())
{
/* Añade ala lista los items a mostrar en el combobox, creando objetos tupla con valores
   obtenidos de la base de datos*/
  listaItems.Add(Tuple.Create<Int32, String>(lector.GetInt32(0), lector.GetString(1)));
}
// Cierra el lector de datos
lector.Close();

// Asigna items a el combobox
comboBox1.DataSource = listaItems;

/* Asigna la propiedad a desplegar en el combobox
   En un objeto tupla la propiedad que contiene
   el primer elemento es llamada Item1, el segundo Item2
   y asi sucesivamente */
comboBox1.DisplayMember = "Item2";

// Asigna la propiedad como valores de los items del combobox
comboBox1.ValueMember = "Item1";

Espero les sea útil.

¡Hasta la próxima!

 

Crear threads con c#.

Código ejemplo de cómo crear y ejecutar threads (hilos) en lenguaje C#:

using System;
using System.Threading;

namespace ProgramasEnCSharp
{
	public static class Threads
	{
		public static void MetodoThread ()
		{
			for (int i = 0 ; i < 10; i++)
			{
				Console.WriteLine("ProcesoHilo: {0}",i);
				Thread.Sleep(0);
			}
		}

		public static void Main()
		{
			Thread t = new Thread(new ThreadStart(MetodoThread));
			t.Start();

			for (int i = 0 ; i < 4; i++)
			{
				Console.WriteLine("Hilo Principal: Haciendo algun proceso..");
				Thread.Sleep(0);
			}

			t.Join();

		}
	}
}

Si se ejecuta el programa anterior, una de las probables salidas del programa seria algo como esto:

Hilo Principal: Haciendo algun proceso..
ProcesoHilo: 0
ProcesoHilo: 1
ProcesoHilo: 2
ProcesoHilo: 3
Hilo Principal: Haciendo algun proceso..
Hilo Principal: Haciendo algun proceso..
Hilo Principal: Haciendo algun proceso..
ProcesoHilo: 4
ProcesoHilo: 5
ProcesoHilo: 6
ProcesoHilo: 7
ProcesoHilo: 8
ProcesoHilo: 9