domingo, 12 de junio de 2011

Limpiar controles dentro de GroupBox en C#

hola que tal amigos como estan, aqui les traigo un codigo muy util para aquellos que deseen lim piar todos los controles de un groupbox como radiobutton, checkbox, textbox, para no tomarse la molestia de hacerlo uno mismo, funciona para cualquier control y no interesa la cantidad, el ejemplo que les voy a mostrar funciona con 2 botones, un textbox, un groupbox de 3 radio buttons, se pedira ingresar el nombre y al dar enter a next, se mostrara el groupbox, la aplicacion se vera asi:


ahora escriben este codigo en el evento Load del Form1:
private void Form1_Load(object sender, EventArgs e)
        {
            groupBox1.Visible = false;
            this.ActiveControl = textBox1;//aqui damos el foco al textbox
        }

para pasar del textbox al boton con enter utilizo este codigo:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (e.KeyChar == (char)(Keys.Enter))
            {
                e.Handled = true; SendKeys.Send("{TAB}");
            }
        }

ahora en el boton next mostramos el groupbox de esta manera:

private void button2_Click(object sender, EventArgs e)
        {
            groupBox1.Visible = true;
        }

ahora en el groupbox vamos a seleccionar el rango de acuerdo a nuestro nombre, en el caso que otro usuario ingrese, este groupbox debe limpiar todos los radiobutton, para eso creamos un metodo clearcontrol que nos va a permitir limpiar todos los radiobutton, este metodo lo invocamos al dar click en cancelar, entonces en el evento click de cancelar ponemos esto:

private void button1_Click(object sender, EventArgs e)
        {
            ClearControl(groupBox1);
            groupBox1.Visible = false;
            textBox1.Clear();
            this.ActiveControl = textBox1;
        }

y el metodo clearcontrol lo escribimos asi:
public void ClearControl(Control root)
        {
            foreach (Control ctrl in root.Controls)
            {
                ClearControl(ctrl);
                if (ctrl is RadioButton)
                {
                    ((RadioButton)ctrl).Checked = false;
                }
            }
        }
espero les haya gustado

0 comentarios:

Publicar un comentario