网上有很多这样的例子
主要都用的是ContextMenuStrip
用法就是:先从工具栏里找到这个控件,拖动至winform
DevExpress的GridControl可以在ContextMenu这个属性中选定Conntext
在编辑项中添加按钮
主要设置toolstripmenuitem的名称
在其Click事件中写入新建行和删除行的代码,主要通过判断点击位置的GridControl名称
即这句最重要
DevExpress.XtraGrid.GridControl gc=((DevExpress.XtraGrid.GridControl)((ContextMenuStrip)sender).SourceControl);
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e){DevExpress.XtraGrid.GridControl gc=((DevExpress.XtraGrid.GridControl)((ContextMenuStrip)sender).SourceControl);//根据GridControl的名称判断执行的操作//根据ContextMenuStripItem的name来判断if ((e.ClickedItem).Name == "menuExportData")//导入数据项{XtraMessageBox.Show("menuExportData");}else if ((e.ClickedItem).Name == "menuAddRow")//{switch(gc.Name){case "tracks_gctrl":this.gridView2.AddNewRow();break;case "trackPieces_gctrl":this.gridView4.AddNewRow();break;case "stationEdgeData_gctrl":this.gridView6.AddNewRow();break;case "switchdata_gctrl":this.gridView5.AddNewRow();break;case "balisedata_gctrl":this.gridView7.AddNewRow();break;default:break;}}else if ((e.ClickedItem).Name == "menuDeleteRow"){switch (gc.Name){case "tracks_gctrl":this.gridView2.DeleteRow(this.gridView2.FocusedRowHandle);break;case "trackPieces_gctrl":this.gridView4.DeleteRow(this.gridView4.FocusedRowHandle);break;case "stationEdgeData_gctrl":this.gridView6.DeleteRow(this.gridView6.FocusedRowHandle);break;case "switchdata_gctrl":this.gridView5.DeleteRow(this.gridView2.FocusedRowHandle);break;case "balisedata_gctrl":this.gridView7.DeleteRow(this.gridView7.FocusedRowHandle);break;default:break;}}}
