网上有很多这样的例子
主要都用的是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;
}
}
}