ContextMenuStrip子菜单位置(C#,Win表单)

ContextMenuStrip子菜单位置(C#,Win表单),c#,winforms,contextmenustrip,C#,Winforms,Contextmenustrip,我有一个两级的ContextMenuStrip,通过右键单击打开。我用代码创建这个菜单 menuitem1 --- submenu1 --- submenu2 --- submenu3 menuitem2 --- submenu1 --- submenu2 --- submenu3 ........ 一切正常,但子菜单在错误位置打开(在主菜单顶部)。我想在主菜单项位置打开 像这样: 那么如何控制子菜单的位置呢?相

我有一个两级的ContextMenuStrip,通过右键单击打开。我用代码创建这个菜单

menuitem1 --- submenu1
          --- submenu2
          --- submenu3
menuitem2 --- submenu1
          --- submenu2
          --- submenu3
........
一切正常,但子菜单在错误位置打开(在主菜单顶部)。我想在主菜单项位置打开

像这样:

那么如何控制子菜单的位置呢?相关代码:

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);
您应该使用以下方法:


或者,您可以使用重载相对于指定的控件位置定位contextmenustrip。

您的问题没有再现问题的代码。如何编辑我的问题?好的,我明白了。@kovak:在浏览器中按[code>Ctrl+F,然后搜索
edit
)这不是“错误的立场”。应放置子菜单,以便用户在将鼠标光标从主菜单移动到子菜单时意外丢失它的几率最小化。如果您曾经使用过错误的UI,比如VLC播放器(子菜单太小)或网页(子菜单放置错误),您知道这会有多痛苦。ToolStripMenuItem没有这个问题。
cmsInventory.Show(cmsInventory.PointToScreen(p));