我有一个两级ContextMenuStrip,由NofiyIcon右键单击打开。我在代码中创建了这个菜单。
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).ShowImageMargin = false;
tray_menu_item.DropDownItems.Add(tray_menu_subitem);
}
tray_menu.Items.Add(tray_menu_item);
答案 0 :(得分:0)
您应该使用此Show(Point)方法:
cmsInventory.Show(cmsInventory.PointToScreen(p));
或者你可以使用Show(Control, Point)重载来定位相对于指定控制位置的contextmenustrip。