У пункта меню есть свойство Index:
public int Index {get; set;}
Это свойство можно использовать для перемещения позиции меню. Смотрим пример:
using System; using System.Windows.Forms; using System.Drawing; class MainForm : Form { MenuItem MenuNew; public MainForm() { Text = "Easy Draw"; MainMenu mnuMenu = new MainMenu(); this.Menu = mnuMenu; MenuItem MenuItemFile = new MenuItem("&File"); MenuNew = new MenuItem("New"); MenuItem MenuOpen = new MenuItem("Open"); MenuItem MenuExit = new MenuItem("Exit", new System.EventHandler(this.MenuExit_Click)); MenuExit.Shortcut = Shortcut.CtrlX; MenuItemFile.MenuItems.Add(MenuNew); MenuItemFile.MenuItems.Add(MenuOpen); MenuItemFile.MenuItems.Add(MenuExit); mnuMenu.MenuItems.Add(MenuItemFile); } private void MenuExit_Click(Object sender, EventArgs e) { MenuNew.Index=MenuNew.Index+1; } public static void Main(string[] args) { Application.Run(new MainForm()); } }
В начальном состоянии меню такое.
После двух вызовов Exit меню поменяет свое положение.
Но будте осторожны, еще один вызов и Вы получите исключение: