2009-12-16 4 views
0

여기에서 검색 한 내용을 정확하게 찾지 못했습니다.ContextMenuStrip item reference problem

ContextMenuStrip을 사용하고 있는데 여기에는 선택/선택되지 않은 항목이 하나 있습니다.

톱 레벨 : 구조는 다음과 같다 설정 중학교 수준 : 처리 바닥 레벨 : 수동 처리 나, 하단 레벨 항목에 액세스 할 수있는 방법을 찾을 수없는 선택 또는 선택 해제로 설정

.

아무도 도와 줄 수 있습니까?

답변

3

확실하지 않습니다. 질문에 답하고 있습니다. "Bottom level item"의 이름을 아십니까? 그래서 그냥 이름을 참조하는 경우 :

bottomLevelMenuItem.Checked = true; 

당신이 이름을 모르는 경우에는 Items 또는 DropDownItems합니다 (MenuItem의 종류에 따라) 컨트롤 컬렉션을 반복 당신이 원하는 것을 찾을 수 있습니다.

foreach (ToolStripMenuItem stripItemCollection in MenuStrip.Items) 
{ 
    ... 
} 

편집 :

수정, ToolStripItem는 확인 속성이 없습니다. 이 도구는 여러 도구 막대 객체에 대한 기본 클래스이며 일부는 검사를 지원하지 않습니다. 이 경우 체크 된 속성이있는 ToolStripMenuItem을 처리하고있을 것입니다.

이 시도 :

ToolStripMenuItem menuItem = this.cmuSystemTray.Items["TLSETTINGS"] as ToolStripMenuItem; 
if (menuItem != null) 
{ 
    menuItem.Checked = true; 
} 

는 다시 각 Control ( ToolStripMenuItem는) 그와 관련된 이름을 가지고 있지만 오히려 컨텍스트 메뉴 스트립의 Items 속성을 통해가는 것보다 원래의 변수를 사용하는 것이 더 쉽습니다 그래서. 내가 this.cmuSystemTray.Items [ "TLSETTINGS을"] 시도 [ "TLSETTINGS"] ToolStripItem을 TITEM = this.cmuSystemTray.Items과 :

TLSETTINGS.Checked = true; // Assuming TLSETTINGS is the name 
+0

는 내 말은 내가 다음과 같은 일을 할 수 있습니다. Checked는 내가 액세스 할 수있는 자산이 아니 었습니다. – mattgcon

+0

여러분 모두에게 중도의 사과를드립니다. 실제로 TLSETTINGS는 최상위 메뉴 항목의 "이름"입니다. TLMANUAL 항목이 TLSETTINGS 드롭 다운 메뉴에 있습니다. 그래서 LTMANUAL 항목을 참조해야합니다. 여기에 내가 가지고있는 것이 붙어 있습니다. ToolStripItem tItem = this.cmuSystemTray.Items [ "TLSETTINGS"]; 이 시점부터 iItem 내의 하위 항목을 가져올 수 없습니다. 누구든지 온라인에서 좋은 예를 들어 주시거나 도와 줄 수 있습니까? – mattgcon

+0

Ohhhhhh, 걱정하지 마라. 나는 네가 지금 무슨 말을하고 있는지 이해하고있다. 그렇게하면 도움을 주셔서 감사합니다. – mattgcon