网上有很多这样的例子
    主要都用的是ContextMenuStrip
    用法就是:先从工具栏里找到这个控件,拖动至winform
    DevExpress的GridControl可以在ContextMenu这个属性中选定Conntext

    在编辑项中添加按钮image.png
    主要设置toolstripmenuitem的名称
    在其Click事件中写入新建行和删除行的代码,主要通过判断点击位置的GridControl名称
    即这句最重要
    DevExpress.XtraGrid.GridControl gc=((DevExpress.XtraGrid.GridControl)((ContextMenuStrip)sender).SourceControl);

    1. private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    2. {
    3. DevExpress.XtraGrid.GridControl gc=((DevExpress.XtraGrid.GridControl)((ContextMenuStrip)sender).SourceControl);
    4. //根据GridControl的名称判断执行的操作
    5. //根据ContextMenuStripItem的name来判断
    6. if ((e.ClickedItem).Name == "menuExportData")//导入数据项
    7. {
    8. XtraMessageBox.Show("menuExportData");
    9. }
    10. else if ((e.ClickedItem).Name == "menuAddRow")//
    11. {
    12. switch(gc.Name)
    13. {
    14. case "tracks_gctrl":
    15. this.gridView2.AddNewRow();
    16. break;
    17. case "trackPieces_gctrl":
    18. this.gridView4.AddNewRow();
    19. break;
    20. case "stationEdgeData_gctrl":
    21. this.gridView6.AddNewRow();
    22. break;
    23. case "switchdata_gctrl":
    24. this.gridView5.AddNewRow();
    25. break;
    26. case "balisedata_gctrl":
    27. this.gridView7.AddNewRow();
    28. break;
    29. default:
    30. break;
    31. }
    32. }
    33. else if ((e.ClickedItem).Name == "menuDeleteRow")
    34. {
    35. switch (gc.Name)
    36. {
    37. case "tracks_gctrl":
    38. this.gridView2.DeleteRow(this.gridView2.FocusedRowHandle);
    39. break;
    40. case "trackPieces_gctrl":
    41. this.gridView4.DeleteRow(this.gridView4.FocusedRowHandle);
    42. break;
    43. case "stationEdgeData_gctrl":
    44. this.gridView6.DeleteRow(this.gridView6.FocusedRowHandle);
    45. break;
    46. case "switchdata_gctrl":
    47. this.gridView5.DeleteRow(this.gridView2.FocusedRowHandle);
    48. break;
    49. case "balisedata_gctrl":
    50. this.gridView7.DeleteRow(this.gridView7.FocusedRowHandle);
    51. break;
    52. default:
    53. break;
    54. }
    55. }
    56. }