2016-08-12 7 views
2

データを送信した後、C#でWindowsフォームの内容をクリアしようとしています。フォームを送信した後に "comboBox"の内容をクリアするには

私は、次のコードを使用して、テキストボックスのためにこれを行うために管理している:

foreach (Control c in Controls) 
{ 
    if (c is TextBox) 
    { 
     c.Text = ""; 

はしかし、私は、フォーム内の「コンボボックス」のために、同じタスクを完了するのに苦労しています。私は次のようにコードのバリエーションを使用しようとしましたが、これはうまくいかないようです。次のように

if (c is ComboBox) 
{ 
    c.Text = ""; 

だから、完全なコードに見える:

foreach (Control c in Controls) 
{ 
    if (c is TextBox) 
    { 
     c.Text = ""; 
    } 
    if (c is ComboBox) 
    { 
     c.Text = ""; 
    } 

誰もが解決を提案することができ、私が何をしないのですか?

種類よろしく

イアンは

+6

使用を 'comboBox.Items.Clear();' –

+0

はあなたがWinFormsのコンボボックスまたはについて話していますか?そして、あなたのコードの始めにコンボをどのように埋めるのですか?これは、コンボ項目を消去する効果的な方法を伝えるために必要です。 – Steve

+0

はいWinFormsのコンボボックスで、ドロップダウンスタイルは "DropDownList"です。 –

答えて

1

あなたのコードは次のようになります:

//your submission of the form code here... 

foreach (Control c in this.Controls) 
{ 
    if (c is TextBox) 
    {      
     ((TextBox)c).Clear(); 
     //c.Text = String.Empty; 
    } 
    if (c is ComboBox) 
    { 
     ((ComboBox)c).Items.Clear(); 
    } 
} 
+1

多くのおかげでRakitic、あなたの提案は完璧に動作します! –

2

てみ

if (c is ComboBox) 
{ 
    c.Items.Clear(); 
} 
1

たとえば、あなたが、あなたがこの

YourForm.Controls.OfType<TextBox>().ToList().ForEach(textBox => textBox.Clear()); 

のような何かができるのTextBoxのすべてをクリアしたいと言いますあなたは同じことをすることができるコンボボックス

YourForm.Controls.OfType<ComboBox>().ToList().ForEach(comboBox => comboBox.Items.Clear()); 
関連する問題