2015-05-29 3 views
0

есть ли какой-либо метод для groupBox для очистки всех свойств объектов внутри groupBox. например, очистить все текстовые поля, отменить выбор всех флажков и т. д. и установить их по умолчанию. или я должен один за другим закодировать, чтобы очистить их? Я хочу сделать это в списке событий SelectedIndexChanged.Метод сброса элементов внутри groupBox

Update:

ок спасибо за повторы, я обнаружил, что вы можете выбрать элементы управления внутри GroupBox очень просто.

 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 
     } 
+0

Я отредактировал ваш заголовок. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –

+0

ОК спасибо за информативность, я не буду делать это дальше! @JohnSaunders –

ответ

1

Самый быстрый способ сделать это:

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(); 
    } 
} 
+0

приятно! плохо попробуйте –

+0

нет метода Page.FindControl(). кроме VisualStyleElement? или я что-то ошибаюсь? –

1

Вам нужно будет очистить все элементы управления внутри группового блока по одному.

+0

ok. я хотел убедиться, что нет способа до того, как я напишу кучу кода, который вы знаете. :) –

0

Вы должны сделать такую ​​функцию:

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); 
    } 
} 

Просто назвать это так:

ClearControls(this); 

Это будет работать рекурсивно, поэтому, если у вас есть панели, например, с их собственным набором элементов управления, чтобы очистить, это также очистит их.

Смежные вопросы