38 - Controles comunes - CheckBox


Ver video

El control CheckBox permite implementar un cuadro de selección (básicamente un botón de dos estados: seleccionado o no seleccionado)

Problema 1:

Confeccionar un programa que muestre 3 objetos de la clase CheckBox con etiquetas de tres idiomas. Cuando se presiona un botón mostrar en la barra de títulos del Form todos los CheckBox seleccionados hasta el momento.

CheckBox

Programa:

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 WindowsFormsApplicationCheckBox1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Text = "";
            if (checkBox1.Checked == true)
            {
                Text = Text + "(Inglés)";
            }
            if (checkBox2.Checked == true)
            {
                Text = Text + "(Francés)";
            }
            if (checkBox3.Checked == true)
            {
                Text = Text + "(Alemán)";
            }
        }
    }
}

La clase CheckBox tiene una propiedad llamada Checked (si tiene el valor true significa que el CheckBox esta seleccionado, en caso contrario no esta seleccionado)

En el evento Click del botón primero borramos el contenido del título del Form:

            Text = "";

Y seguidamente mediante estructuras if verificamos el estado de cada CheckBox, en caso de estar seleccionado concatenamos al título del Form el valor que representa ese CheckBox:


            if (checkBox1.Checked == true)
            {
                Text = Text + "(Inglés)";
            }

Problema 2:

Disponer un control Label que muestre el siguiente mensaje: "Esta de acuerdo con las normas del servicio?", luego un CheckBox y finalmente un objeto de tipo Button desactivo (propiedad Enabled con false). Cuando se tilde el CheckBox debemos activar el botón (para esto debemos responder al evento)

CheckBox

Programa:


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 WindowsFormsApplicationCheckBox2
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                button1.Enabled = true;
            }
            else
            {
                button1.Enabled = false;
            }
        }
    }
}

Debemos implementar el evento CheckedChange del objeto checkBox1 (preguntamos si el CheckBox se encuentra seleccionado o no, en caso de estar seleccionado activamos el botón asignando a la propiedad Enabled el valor true):


        private void checkBox1_CheckedChanged(object sender, EventArgs e)
        {
            if (checkBox1.Checked == true)
            {
                button1.Enabled = true;
            }
            else
            {
                button1.Enabled = false;
            }
        }

Problema propuesto

  1. Disponer tres objetos de la clase CheckBox con nombres de navegadores web. Cuando se presione un botón mostrar en el título del Form los programas seleccionados.
Solución
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 WindowsFormsApplicationCheckBox3
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Text = "";
            if (checkBox1.Checked == true)
            {
                Text = Text + "(" + checkBox1.Text + ")";
            }
            if (checkBox2.Checked == true)
            {
                Text = Text + "(" + checkBox2.Text + ")";
            }
            if (checkBox3.Checked == true)
            {
                Text = Text + "(" + checkBox3.Text + ")";
            }
        }
    }
}

Retornar