2016-06-28 13 views
-1

ボタンをクリックしてグループボックスのアイテムをクリーニングしたいグループボックスのアイテムをリセットするにはどうすればよいですか?

私はいくつかのコードブロックを試しましたが、リセット制御にはうまくいきません。

私はそれを削除または削除したくない、私はちょうどグループボックスの項目をリセットしたい。

これはグループボックスのアイテムを削除するために機能しています。

public void ClearPanels(GroupBox control) 
    { 
     control.Controls.Clear(); 
    } 

またはこの

groupBox2.Controls.Clear(); 

これは、クリックする前に、次のようになります。 Before Click

ボタンをクリックすると、右側に表示されます。

After Click

それは削除されますが、私はそれをリセットしたいです。

どうすればいいですか?

+1

明確に何を意味するのに必要な値をasigningのアイデアを得ると思いますか?テキストボックスのテキストを削除し、すべてのチェックを外し、コンボボックスを最初の選択肢に設定しますか? – Aimnox

+0

その答えで 'if'を' else if'に置き換えてください。 – Shaharyar

+0

_私はそれをきれいにしたい。_定義する 'クリーン'! – TaW

答えて

2

私はデフォルトですべてを残すことを意味すると言っているつもりです。あなたは、グループボックス内のすべてのコントロールを、それらが何か他の何かをしているかに応じて、llopする必要があります。

foreach (Control ctr in GB.Controls) 
{ 
    if (ctr is TextBox) 
    { 
     ctr.Text = ""; 
    } 
    else if (ctr is CheckedListBox) 
    { 
     CheckedListBox clb = (CheckedListBox)ctr; 
     foreach (int checkedItemIndex in clb.CheckedIndices) 
     { 
      clb.SetItemChecked(checkedItemIndex, false); 
     } 
    } 
    else if (ctr is CheckBox) 
    { 
     ((CheckBox)ctr).Checked = false; 
    } 
    else if (ctr is ComboBox) 
    { 
     ((ComboBox)ctr).SelectedIndex = 0; 
    } 
} 

私が何であるかをDeneyimおよびNot知らないが、私はあなたがそれが何であるかをチェックし、あなたが

1

clearという用語は、使用するコントロールの種類に少し依存すると思います。 TextBoxの場合は、Textプロパティを空にします。ListBoxの場合は、すべてのアイテムを削除することをお勧めします。だから、コントロールのための共通のClear()メソッドはありません。あなたのGroupBox

public void ClearPanels(GroupBox control) 
{ 
    foreach(Control childControl in control.Controls) 
     childControl.ResetText(); 
} 

この反復処理し、すべての子を通してControl sおよびそれらのTextプロパティをリセットします:あなたは何ができるか

はそのようなものです。特定のタイプのControlに対して特別な治療を追加したい場合があります。

あなたGroupBoxは、(例えば、その上にさらにコントロールを持つ別のGroupBoxなど)のネストされたコントロールが含まれている場合は、このメソッドは、再帰的にする必要があるかもしれません:本当に「クリア」あなたのコントロールに

public void ClearPanels(Control control) 
{ 
    foreach(Control childControl in control.Controls) 
    { 
     childControl.ResetText(); 
     ClearPanels(childControl); // recursive call 
    } 
} 

、あなたは特定のタイプを確認する必要があります。だから少し高度な方法がこれかもしれません:

+0

'ListBox'や' DropDown'の全項目の 'Text'をクリアしませんか? – Shaharyar

+0

@Shaharyarいいえ、リストボックス内の項目はコントロールではありません。 'ResetText'は単に' Control.Text = string.Empty'を設定しますが、 'ListView.Items.Clear()'のようなものは呼び出しません。 –

+0

それから私はそれが完全に質問に答えないと言うでしょう。 – Shaharyar

関連する問題