에 대한 ToolStrip/MenuStrip/StatusStrip의 하위 항목을 가져와야 텍스트가 번역됩니다.C# | ToolStrip의 모든 하위 항목을 가져 오는 방법은 무엇입니까?
간단한 재귀를 통해 컨트롤을 사용했지만 ToolStripItem 클래스의 DropDownItems 속성이 없기 때문에 ToolStrip 항목을 사용하여 컨트롤을 수행하는 방법을 알지 못합니다.
에 대한 ToolStrip/MenuStrip/StatusStrip의 하위 항목을 가져와야 텍스트가 번역됩니다.C# | ToolStrip의 모든 하위 항목을 가져 오는 방법은 무엇입니까?
간단한 재귀를 통해 컨트롤을 사용했지만 ToolStripItem 클래스의 DropDownItems 속성이 없기 때문에 ToolStrip 항목을 사용하여 컨트롤을 수행하는 방법을 알지 못합니다.
이 글을 잘 쓰고 있습니다.
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();
}
이것은 중복됩니다. 일반적인 기본 클래스는 ['ToolStripDropDownItem'] (https://msdn.microsoft.com/en-us/library/system.windows.forms.toolstripdropdownitem (v = vs.110) .aspx)이고'DropDownItems'는 공통 기본 클래스의 속성 형식 테스트를 제거하고 동일한 코드를 사용하여 배열에 삽입 할 수 있습니다. – Jasen
감사! 그게 내가 무엇을 검색 : – user6466445
질문에 답을 원할 경우. 일반적인 문제를 덤프하지 말고, 최소한의 완전하고 검증 가능한 예제를 제공하고 게시 가이드 라인을 읽어보십시오. –
[.Net 컨트롤의 항목을 총체적으로 열거 (MenuStrip, ToolStrip, StatusStrip)] 가능한 복제본 (http://stackoverflow.com/questions/297335/enumerate-net-controls-items-generically-menustrip-toolstrip-statusstrip) –