.NET给DataGridView添加右键选中并设置右键菜单ContextMenuStrip显示的位置
来源:互联网 发布:网络技术人员 编辑:程序博客网 时间:2024/06/03 03:01
今天需要给一个DataGridView添加一个右键菜单ContextMenuStrip,以实现当右键选中某一单元格的数据时则在点击位置弹出该菜单。
一开始直接在DataGridView的属性栏里设置其ContextMenuStrip属性指向一个ContextMenuStrip对象。但后来发现这样的做法会有问题:当右键点击DataGridView的任何地方(包括行头、列头甚至空白处)都会弹出来。这可不是我要的效果。
后来查了些资料发现可以这样做:
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.ColumnIndex > -1 && e.RowIndex > -1)
{
//右键选中单元格
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
//在单元格处弹出菜单
contextMenuStrip1.Show(MousePosition.X,MousePosition.Y);
}
}
需要注意以下几点:
1、“e.ColumnIndex > -1 && e.RowIndex > -1”表示如果选中行头或列头均不触发。
2、“MousePosition.X”“MousePosition.Y”可以获取鼠标在屏幕中的绝对位置。
一开始直接在DataGridView的属性栏里设置其ContextMenuStrip属性指向一个ContextMenuStrip对象。但后来发现这样的做法会有问题:当右键点击DataGridView的任何地方(包括行头、列头甚至空白处)都会弹出来。这可不是我要的效果。
后来查了些资料发现可以这样做:
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
{
if (e.Button == MouseButtons.Right && e.ColumnIndex > -1 && e.RowIndex > -1)
{
//右键选中单元格
dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Selected = true;
//在单元格处弹出菜单
contextMenuStrip1.Show(MousePosition.X,MousePosition.Y);
}
}
需要注意以下几点:
1、“e.ColumnIndex > -1 && e.RowIndex > -1”表示如果选中行头或列头均不触发。
2、“MousePosition.X”“MousePosition.Y”可以获取鼠标在屏幕中的绝对位置。
0 0
- .NET给DataGridView添加右键选中并设置右键菜单ContextMenuStrip显示的位置
- 给datagridview添加右键菜单并确定其位置
- DataGridView 的右键菜单(ContextMenuStrip)
- DataGridView 的右键菜单(ContextMenuStrip)
- [转]DataGridView 的右键菜单(ContextMenuStrip)
- DataGridView 的右键菜单(ContextMenuStrip)
- 给DataGridView添加右键菜单
- 给DataGridView添加右键菜单
- dataGridView右键菜单并选中该行
- dataGridView右键菜单并选中该行
- dataGridView右键菜单并选中该行
- arcengine onmouseup使用contextmenustrip添加右键菜单
- CTreeCtrl 右键选中节点并显示菜单
- CTreeCtrl 右键选中节点并显示菜单
- Tree 添加右键菜单,并确定这个选中的右键索引,以及菜单的操作
- 【转载于<小锋刚>博客园】C#遍历ContextMenuStrip右键菜单中包含子菜单的所有菜单并添加事件
- DataGridView右键单击弹出菜单并选中行
- dataGridView上添加“右键菜单”
- 未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值
- 算法导论笔记:13-03红黑树删除
- PostBack与AutoPostBack的功能解释
- juddi3.2.1+mysql5.7+jdk1.7搭建的私人uddi注册中心
- How Developers Sort in Java?
- .NET给DataGridView添加右键选中并设置右键菜单ContextMenuStrip显示的位置
- 使用secureCRT或者cureFTP登陆虚拟机的ubuntu主机
- 异常处理
- struts2-下
- SlidingFragmentActivity,SlidingActivity界面的 selector失效问题
- 静态和动态注册广播接收者 72集
- 一起学习CC3200系列教程之看门狗
- 树莓派2(Raspberry Pi 2 )上的tightvnc多用户端口登陆配置
- apache shiro踢出用户和获取所有在线用户