Informática Lenguaje de programación C Sharp (C#)
Transcripción
Informática Lenguaje de programación C Sharp (C#)
Colegio Nicolás Esquerra Jornada Tarde Asignatura: Informática Lenguaje de programación C Sharp (C#) GUIA 9 Controles comunes - ComboBox El control ComboBox permite seleccionar un string( cadena de caracteres) de una lista. Para inicializar los string que contendrá el ComboBox debemos acceder a la propiedad Items Un evento muy útil con este control es cuando el operador selecciona un Item de la lista. Para capturar la selección de un item debemos codificar el evento SelectedIndexChanged. Problema 1: Cargar en un ComboBox una lista con los nombres de varios colores a través de la propiedad items. Al seleccionar alguno mostrar en la barra de título del Form el string seleccionado. Códico problema1. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplicationComboBox1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { Text = comboBox1.Text; } } } Cuando se selecciona un string de la lista se dispara el evento SelectedIndexChanged y procedemos a extraer el texto seleccionado del ComboBox y lo mostramos en el título del Form: private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { Text = comboBox1.Text; } Problema 2: Disponer tres controles de tipo ComboBox con valores entre 0 y 255 (cada uno representa la cantidad de rojo, verde y azul). Luego al presionar un botón pintar el fondo del Form con el color que se genera combinando los valores de los ComboBox. Códico problema2. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; namespace WindowsFormsApplicationComboBox2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { for (int f = 0; f <= 255; f++) { comboBox1.Items.Add(f.ToString()); comboBox2.Items.Add(f.ToString()); comboBox3.Items.Add(f.ToString()); } comboBox1.SelectedIndex = 0; comboBox2.SelectedIndex = 0; comboBox3.SelectedIndex = 0; } private void button1_Click(object sender, EventArgs e) { int rojo = int.Parse(comboBox1.Text); int verde = int.Parse(comboBox2.Text); int azul = int.Parse(comboBox3.Text); BackColor = Color.FromArgb(rojo, verde, azul); } } } La carga manual de cada ComboBox nos haría perder mucho tiempo en tiempo de diseño por lo que lo hacemos mediante un algoritmo. Cuando se carga el Form se ejecuta el evento Load donde mediante un for procedemos a añadir los 256 valores: private void Form1_Load(object sender, EventArgs e) { for (int f = 0; f <= 255; f++) { comboBox1.Items.Add(f.ToString()); comboBox2.Items.Add(f.ToString()); comboBox3.Items.Add(f.ToString()); } La propiedad Items del ComboBox tiene un método llamado Add que añade un elemento a la lista (como debemos pasar un string como parámetro convertimos a la variable entera f a string) Luego para dejar seleccionado por defecto el primer item añadido inicializamos la propiedad SelectedIndex: comboBox1.SelectedIndex = 0; comboBox2.SelectedIndex = 0; comboBox3.SelectedIndex = 0; En el evento Click del botón procedemos a extraer el valor seleccionado de cada ComboBox y lo convertimos a entero: int rojo = int.Parse(comboBox1.Text); int verde = int.Parse(comboBox2.Text); int azul = int.Parse(comboBox3.Text); Para cambiar el color de fondo del Form actualizamos la propiedad BackColor. El color lo generamos llamando al método estático FromArgb de la clase Color: BackColor = Color.FromArgb(rojo, verde, azul); Problemas propuestos 1. Solicitar el ingreso del nombre de una persona y seleccionar de un control ComboBox un país. Al presionar un botón mostrar en la barra del título del Form el nombre ingresado y el país seleccionado.