2016-08-24 10 views
-1

에 대한 ToolStrip/MenuStrip/StatusStrip의 하위 항목을 가져와야 텍스트가 번역됩니다.C# | ToolStrip의 모든 하위 항목을 가져 오는 방법은 무엇입니까?

간단한 재귀를 통해 컨트롤을 사용했지만 ToolStripItem 클래스의 DropDownItems 속성이 없기 때문에 ToolStrip 항목을 사용하여 컨트롤을 수행하는 방법을 알지 못합니다.

+1

질문에 답을 원할 경우. 일반적인 문제를 덤프하지 말고, 최소한의 완전하고 검증 가능한 예제를 제공하고 게시 가이드 라인을 읽어보십시오. –

+0

[.Net 컨트롤의 항목을 총체적으로 열거 (MenuStrip, ToolStrip, StatusStrip)] 가능한 복제본 (http://stackoverflow.com/questions/297335/enumerate-net-controls-items-generically-menustrip-toolstrip-statusstrip) –

답변

0

이 글을 잘 쓰고 있습니다.

private ToolStripItem[] GetAllChildren(ToolStripItem item) 
    { 
     List<ToolStripItem> Items = new List<ToolStripItem> { item }; 
     if (item is ToolStripMenuItem) 
      foreach (ToolStripItem i in ((ToolStripMenuItem)item).DropDownItems) 
       Items.AddRange(GetAllChildren(i)); 
     else if (item is ToolStripSplitButton) 
      foreach (ToolStripItem i in ((ToolStripSplitButton)item).DropDownItems) 
       Items.AddRange(GetAllChildren(i)); 
     else if (item is ToolStripDropDownButton) 
      foreach (ToolStripItem i in ((ToolStripDropDownButton)item).DropDownItems) 
       Items.AddRange(GetAllChildren(i)); 
     return Items.ToArray(); 
    } 
+0

이것은 중복됩니다. 일반적인 기본 클래스는 ['ToolStripDropDownItem'] (https://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripdropdownitem (v = vs.110) .aspx)이고'DropDownItems'는 공통 기본 클래스의 속성 형식 테스트를 제거하고 동일한 코드를 사용하여 배열에 삽입 할 수 있습니다. – Jasen

+0

감사! 그게 내가 무엇을 검색 : – user6466445