2012-04-21 3 views
6

여러 컨트롤에 연결하는 ContextMenuStrip이 있습니다. 그것에는 {Add, Remove, Edit} 항목이 있습니다. 사용자가이 컨텍스트 메뉴를 팝업하는 목록 상자 컨트롤 중 하나를 마우스 오른쪽 버튼으로 클릭하고 '추가'를 선택하면 전달 된 ToolStripMenuItem 참조에서 어떻게 목록 상자 컨트롤을 파생시킬 수 있습니까?ToolStripMenuItem의 부모 컨트롤 찾기

private void OnAddEntry(object sender, EventArgs e) 
    { 
     // Example: ????? 
     ListBox lb = sender.Parent; 
    } 
+0

목록 상자 파운드 = ((리스트 박스) sender.Parent를); 또는 아마도 ListBox lb = ((ListBox) sender.Parent.Parent); –

+0

Spy ++를 사용해 보셨습니까? –

답변

14

마크,이 시도 :

((ContextMenuStrip)(((ToolStripMenuItem)sender).Owner)).SourceControl 
+1

ListBox로 캐스팅하면 작동합니다! – MarkP

+0

키보드 단축키를 사용할 때 SourceControl은 null이 될 수 있습니다. – John

1

나는 목록 상자를 찾을 때까지 부모의 사슬로 올라갈 수 있다고 생각합니다.

OwnerItem 속성을 사용하여 툴팁으로 바로 이동할 수 있습니다.

언제든지 항목의 태그를 목록 상자에 설정 한 다음 필요에 따라 사용할 수 있습니다.