2017-02-24 84 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」並搜索「編輯」。 ;) –

回答

0

你應該使用這個方法Show(Point)

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

或者你可以使用Show(Control, Point)過載相對於指定的控制位置的ContextMenuStrip定位。