简体   繁体   中英

Method to reset members inside groupBox

is there any method for groupBox to clear all properties of objects inside groupBox. for example clear all textboxes, deselect all checkboxes etc. and set them to default. or i should code one by one to clear them? i want to do this on event listview SelectedIndexChanged.

Update:

ok thanks for replays, i found that you can select controls inside groupbox very simple.

        foreach (Control ctrl in groupBox2.Controls)//this will only select controls of groupbox2
        {
            if (ctrl is TextBox)
            {
                (ctrl as TextBox).Text = "";
            }
            if (ctrl is CheckBox)
            {
                (ctrl as CheckBox).Checked = false;
            }
            if (ctrl is ComboBox)
            {
                (ctrl as ComboBox).SelectedIndex = -1;
            }
            //etc
        }

您需要一一清除组框内的所有控件。

The fastest way to do that is :

Control myForm = Page.FindControl("Form1");
foreach (Control ctrl in myForm.Controls)
{
    //Clears TextBox
    if (ctrl is System.Web.UI.WebControls.TextBox)
    {
        (ctrl as TextBox).Text = "";
    }
    //Clears DropDown Selection
    if (ctrl is System.Web.UI.WebControls.DropDownList)
    {
         (ctrl as DropDownList).ClearSelection();
    }
    //Clears ListBox Selection
    if (ctrl is System.Web.UI.WebControls.ListBox)
    {
        (ctrl as ListBox).ClearSelection();
    }
    //Clears CheckBox Selection
    if (ctrl is System.Web.UI.WebControls.CheckBox)
    {
        (ctrl as CheckBox).Checked = false;
    }
    //Clears RadioButton Selection
    if (ctrl is System.Web.UI.WebControls.RadioButtonList)
    {
        (ctrl as RadioButtonList).ClearSelection();
    }
    //Clears CheckBox Selection
    if (ctrl is System.Web.UI.WebControls.CheckBoxList)
    {
        (ctrl as CheckBoxList).ClearSelection();
    }
}

You would have to make a function like this:

private void ClearControls(Control control)
{
    var textbox = control as TextBox;
    if (textbox != null)
        textbox.Text = string.Empty;

    var dropDownList = control as DropDownList;
    if (dropDownList != null)
        dropDownList.SelectedIndex = 0;

    // And add any other controls
    // ...

    foreach( Control childControl in control.Controls )
    {
        ClearControl( childControl );
    }
}

Just call it like this:

ClearControls(this);

This will work recursively, so if you have any panels, for example, with their own set of controls to clear, this will clear those too.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM