2013-12-21 7 views
-1

Я пытаюсь очистить все флажки и текстовые поля в первой панели моего разделительного контейнера, но мне не повезло, поскольку ничего не происходит.Очистить флажки и текстовые поля в Splitcontainer - C#

private void clearSettingsBtn_Click(object sender, EventArgs e) 
{ 
    foreach (Control c in splitContainer1.Panel1.Controls) 
    { 
     if (c is CheckBox) 
     { 
      ((CheckBox)c).Checked = false; 
     } 
     else if (c is TextBox) 
     { 
      ((TextBox)c).Clear(); 
     } 
    } 
} 

Я что-то пропустил?

+0

Вы уверены, что элементы управления, которые должны быть очищены, размещены в Panel1 splitContainer1? – user2737037

+0

Абсолютно, у меня изначально был код, который очистил флажки во всей форме. – galacticfan

ответ

2

На самом деле ваш код довольно хорошо, должна быть другая проблема, как неправильной панели или более вероятно, там будет другой контейнер в панели, как GroupBox, что в этом случае (другой контейнер), вы должны проходить через этот контейнер.

В случае, если у вас есть контейнер внутри панели простого кода может быть так:

  foreach (Control control in splitContainer1.Panel2.Controls) 
     { 
      if (control is GroupBox) 
      { 
       foreach (Control child in (control as GroupBox).Controls) 
       { 
        if (child is CheckBox) 
        { 
         ((CheckBox)control).Checked = false; 
        } 
        else if (child is TextBox) 
        { 
         (control as TextBox).Clear(); 
        } 
       } 
      } 
     } 

Но если вы хотите, чтобы написать более общий код, вы должны проверить для каждого контейнера, то есть GroupBox, Панель и т. д.

+0

Я думаю, что это, скорее всего, проблема, учитывая, что все мои флажки и текстовые поля находятся внутри групповых ящиков. Вы бы не узнали о каких-либо примерах, которые повторяются через контейнер? – galacticfan

+0

Я отправлю пример кода за минуту. –

+0

Образец кода добавлен в исходное сообщение. Надеюсь, это поможет. –

0

Попробуйте

foreach (Control c in Panel1.Controls) 
      { 
       if (c is CheckBox) 
       { 
        ((CheckBox)c).Checked = false; 
       } 
       else if (c is TextBox) 
       { 
        ((TextBox)c).Text=""; 
       } 
      } 
+0

statement -> 'нет такой функции, как ((TextBox) c) .Clear();' неверно, существует метод 'Clear()', используемый для очистки 'TextBox'. –

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