作者:[jiankunking](http://blog.csdn.net/jiankunking) 出处:http://blog.csdn.net/jiankunking
右键菜单肯定是GridView中经常要使用的一个功能。本文主要描述三个方面:
1、如何在GridView中添加右键菜单
2、如何设置菜单是否可用(enable)
3、如何获取右键点击事件
一、添加右键菜单
1.在VS工具箱中的“菜单和工具栏”找到ContextMenuStrip控件,双击添加。

2.点击ContextMenuStrip右上方的小三角形,打开编辑项,可以添加菜单项。



3.选择gridControl(注意这里不是gridView的属性),在属性中可以找到ContextMenuStrip属性,设置成刚添加ContextMenuStrip。

这样的话,运行起来右击表格就可以看到右键菜单了。
如下图:

二、是否可用设置
在不同情况下,例如选中行的个数以及内容的不同,右键菜单的菜单项是否可用需要作出判断。
在单选时,“编辑”(itemOpen)、“删除”(itemDelete)菜单项都可用,多选时“编辑”不可用,“删除”可用,没有选择时“编辑”、“删除”都不可用。这里需要用到gridView的PopupMenuShowing这个事件。也就是在菜单出现之前用户点击右键之后,来判断一下选择了几行,从而决定菜单项是否可用。
具体代码如下:
~~~
private void gridView1_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
{
//获取选择的行数
int intselect = gridView1.SelectedRowsCount;
MenuItemEdit.Enabled = false;
MenuItemDelete.Enabled = false;
if (intselect == 1)
{
MenuItemEdit.Enabled = true;
MenuItemDelete.Enabled = true;
}
else if (intselect > 1)
{
MenuItemEdit.Enabled = false;
MenuItemDelete.Enabled = false;
}
}
~~~
三、如何获取右键点击事件
~~~
#region 右键单击事件
private void contextMenuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
{
//根据ContextMenuStrip Item 的name来判断
if ((e.ClickedItem).Name == "MenuItemEdit")
{
}
else if ((e.ClickedItem).Name == "MenuItemDelete")
{
}
}
#endregion
~~~
- 前言
- DEV Gridcontrol 多选
- 关于同步(字典)功能实现的相关积累
- 怎么将输入框控件中的值添加到DataSet中?
- 怎么获得当前行(gridcontrol中)在数据库中某列的值?
- DEV ComboBoxEdit 控件
- Dev Gridcontrol “互联”界面的实现
- DEV ComboBoxEdit控件
- GridView控件 System.NullReferenceException
- Ds中有数据,但Gridview上未显示的原因小结
- VS2010 dev控件 拖拽不到Winfrom上的原因
- DEV Xtratabcontrol中的Xtratabpage
- 在Gridcontrol上选择某一列,并将其删除
- Dev RadioGroup控件:实现单选效果
- Dev Gridcontrol 设置当前行字体
- 控件repositoryItemTextEdit输入不上
- 在GridControl上显示与表A某字段对应的表B字段
- Dev中的repositoryItemButtonEdit控件,双击没反应
- 隐藏GridControl的“Drag a column header here to group by that column”
- DEV GridView显示行号
- DEV Gridcontrol 查询得到0条记录时显示自定义的字符提示/显示
- DateEdit控件时间格式转换
- Dev BarManager控件要通过Remove成员来释放内存
- Dev 显式注册的EvenHandler要显式注销以避免内存泄漏
- Dev 控件绑定的数据源批量操作应避免自动刷新
- Dev Gridcontrl随便单击,都会调用某个方法的原因
- DEV Gridcontrol 格式化显示数据
- DEV gridview 捕获行双击事件
- Dev gridcontrol 捕获按键事件
- DEV GridControl 导出到Excel
- DevExpress GridControl复合表头(多行表头)设置
- Dev gridcontrol获取选定行,指定列单元格的内容
- Dev GridControl 小结
- DevExpress TreeList控件的复选框
- Dev Treelist控件显示行号
- Dev 获取鼠标所在行的索引值
- DevExpress gridview下拉框repositoryItemComboBox的使用
- DevExpress.XtraEditors.DataNavigator用法
- dev gridcontrol 单选框效果
- dev 根据datatable动态生成gridview
- Dev BarManager用法
- Dev GridView RowCellClick事件与MouseDown事件
- Dev 控件中的combox禁止输入
- 在DevExpress GridControl的一列中显示图片
- Dev GridControl 单元格输入数据的验证方法
- dev treelist 常用用法小结
- DevExpress GridView 添加和设置右键菜单
- Dev GridView 绑定List<T>、BindingList <T>、BindingSource
- Dev RadioGroup 用法(项横排显示、项选中)
- DevExpress XtraTreeList的复选框 禁用
