2010-02-01 2 views
1

내 응용 프로그램에서 여러 개의 툴 스트립 컨트롤을 가지고 있으며이를 모두 한 번에 숨길 수있는 방법을 찾고있었습니다..NET 비슷한 컨트롤 참조

예. 대신 중요한 경우 내가 C#을 사용하고 있습니다

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

allToolStrips.Visible = false; 

.

답변

5

같은 코드는 당신이 그들을 전환하는 경우 다시 볼을 컨트롤 플립 사용할 수 있도록 그렇게하지 않도록 한

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

     ctrl.Visible=false;  

} 
1

linq를 사용하면됩니다. 이 같은.

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

구문을 검사하지 않았지만 괜찮다고 생각합니다.

+0

내가 LINQ에서 아주 좋은 아니에요, 그러나 이것은'.ToList()를 ForEach()가'조금 어색보고 내가 모든 항목의 속성을 변경할 수있는 더 좋은 방법이 존재한다. 열거 형 내에 – Oliver

2

벡터에 넣은 다음 각 루프마다 숨기시겠습니까?

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;  

    } 
}