1

アプリケーションに複数のツールストリップコントロールがあり、それらすべてを一度に非表示にする方法を探していました。

例えば

allToolStrips.Visible = false;

それ以外の

toolstrip1.Visible = false;
toolstrip2.Visible = false;
...
toolstripn.Visible = false;

重要な場合はC#を使用しています。

4

4 に答える 4

5

簡単なもの

foreach(Control ctrl in this.Controls)
{           
         if(ctrl.GetType() ==typeof(ToolStrip))

         ctrl.Visible=false;    

}
于 2010-02-01T09:59:19.380 に答える
2

それらをベクトルに入れてから、for each ループで非表示にしますか?

于 2010-02-01T09:59:10.813 に答える
1

linq を使用して実行できます。このようなもの。

this.Controls.Select(c => c is ToolStrip).ToList().ForEach(ts => ts.Visible = false);

構文は確認していませんが、問題ないと思います。

于 2010-02-01T09:59:11.223 に答える
0

他の人の回答に加えて、同じコードを使用して、コントロールを切り替えている場合にコントロールを再び表示できるようにコーディングすることを検討してください。これにより、コードが重複しなくなります。

void SetMenusVisibility(bool visible)
{
    //credit to Vivek for his loop
    foreach(Control ctrl in this.Controls)
    {           
             if(ctrl.GetType() ==typeof(ToolStrip))

             ctrl.Visible=visible;    

    }
}
于 2010-02-01T10:17:45.123 に答える