2017-02-24 1 views
0

나는 NofiyIcon 오른쪽 클릭으로 열리는 두 단계의 ContextMenuStrip을 가지고 있습니다. 코드에서이 메뉴를 만듭니다.ContextMenuStrip 하위 메뉴 위치 (C#, Win Forms)

menuitem1 --- submenu1 
      --- submenu2 
      --- submenu3 
menuitem2 --- submenu1 
      --- submenu2 
      --- submenu3 
........ 

모든 것이 정상이지만 부 메뉴가 잘못된 위치 (주 메뉴 상단)에서 열립니다. 기본 메뉴 항목 위치에서 열려고합니다.

enter image description here

그래서 내가 어떻게 하위 메뉴의 위치를 ​​제어 할 수 있습니다 : 이것처럼

? 관련 코드 :

tray_menu_item = new ToolStripMenuItem(); 
tray_menu_item.Text = kvp.Value.ToString(); 
while (reader.Read()) { 
    tray_menu_subitem = new ToolStripMenuItem(); 
    tray_menu_subitem.Text = reader["task"].ToString(); 
    ((ToolStripDropDownMenu)tray_menu_subitem.DropDown).ShowImag‌​eMargin = false; 
    tray_menu_item.DropDownItems.Add(tray_menu_subitem); 
} 

tray_menu.Items.Add(tray_menu_item); 
+0

질문을 재현하는 코드가 없습니다. –

+0

질문을 편집하려면 어떻게해야합니까? 그래 알았어. – kovak

+0

@kovak : 브라우저에서'Ctrl + F '를 누르고'edit'를 검색하십시오. ;) –

답변

0

Show(Point) 방법을 사용해야합니다

cmsInventory.Show(cmsInventory.PointToScreen(p)); 

를 또는 지정된 제어 위치에 ContextMenuStrip을 상대적인 위치를 Show(Control, Point) 오버로드를 사용할 수 있습니다.