DevExpress版本:18.1
.NET Framework版本:4.0
VS版本:2017
C#语言版本:7.3
1 public partial class YourClass : XtraForm 2 { 3 private readonly PopupMenu PopupMenu = new PopupMenu(); 4 private readonly BarManager BarManager = new BarManager(); 5 6 public YourClass() 7 { 8 // constructor 9 } 10 11 private void InitContextMenuGridControlDbTables() 12 { 13 this.PopupMenu.BeginInit(); 14 this.BarManager.BeginInit(); 15 16 var menuRefresh = new BarButtonItem 17 { 18 Manager = this.BarManager, 19 Caption = "Refresh", 20 Name = "Refresh", 21 Id = 022 }; 23 // menuRefresh.ItemClick += this.WhenClickRefresh;24 25 var menuSynchronize = new BarButtonItem 26 { 27 Manager = this.BarManager, 28 Caption = "Synchronize", 29 Name = "Synchronize", 30 Id = 131 }; 32 // menuSynchronize.ItemClick += this.WhenClickSynchronize;33 34 var menuPurge = new BarButtonItem 35 { 36 Manager = this.BarManager, 37 Caption = "Purge", 38 Name = "Purge", 39 Id = 240 }; 41 // menuPurge.ItemClick += this.WhenClickPurge;42 43 var menuRemove = new BarButtonItem 44 { 45 Manager = this.BarManager, 46 Caption = "Remove", 47 Name = "Remove", 48 Id = 349 }; 50 // menuRemove.ItemClick += this.WhenClickRemove;51 52 this.PopupMenu.LinksPersistInfo.AddRange(new[] 53 { 54 new LinkPersistInfo(menuRefresh), 55 new LinkPersistInfo(menuSynchronize, true), // 第二个参数true,表示在Synchronize和Refresh菜单之间添加分割线56 new LinkPersistInfo(menuPurge, true), // 第二个参数true,表示在Purge和Synchronize菜单之间添加分割线57 new LinkPersistInfo(menuRemove) 58 }); 59 this.PopupMenu.Manager = this.BarManager; 60 61 this.BarManager.Form = this.gridControlDbTables; // BarManager.Form属性表示菜单所属的控件62 this.BarManager.Items.AddRange(new BarItem[] 63 { 64 menuRefresh, 65 menuSynchronize, 66 menuPurge, 67 menuRemove 68 }); 69 70 this.PopupMenu.EndInit(); 71 this.BarManager.EndInit(); 72 73 // 绑定BarManager.Form控件的MouseUp事件以显示菜单74 this.gridControlDbTables.MouseUp += (sender, e) =>75 { 76 if (MouseButtons.Right == e.Button) 77 this.PopupMenu.ShowPopup(Control.MousePosition); 78 }; 79 } 80 }