当前位置:编程学习 > C#/ASP.NET >>

winform中dataGridView右键菜单的问题!急急急急!!!

请教怎么实现在dataGridView某一列上点击右键,弹出菜单功能,以及右键菜单中的事件调用!希望高手指点一下,谢谢!! --------------------编程问答-------------------- 不好意思,我只有20分了,希望大家帮帮忙,谢谢各位了先!!! --------------------编程问答-------------------- 帮你顶,我也很想知道 --------------------编程问答-------------------- 使用ContextMenuStrip控件,往里面加菜单项就OK了 --------------------编程问答-------------------- DataGridView.Columns["字段名"].ContextMenuStrip = menu;
字段名:你要弹出右键菜单的那一列
menu:菜单控件的属性名 --------------------编程问答-------------------- 按照楼上的方法,如果我要想在任意一行的任意一列上点击右键出现菜单,岂不是要遍历一遍?
有好方法吗? --------------------编程问答-------------------- 帮你顶顶 --------------------编程问答-------------------- 求此法! --------------------编程问答--------------------
引用 5 楼 jtlsoft007 的回复:
按照楼上的方法,如果我要想在任意一行的任意一列上点击右键出现菜单,岂不是要遍历一遍?
有好方法吗?

  把右键菜单 绑定到你那dataGridView控件就可以了。 --------------------编程问答-------------------- 使用ContextMenuStrip控件(名称menu1), 添加你需要的事件,菜单名称。

然后再dataGridView控件的ContextMenuStrip属性里放上menu1

就实现右键菜单了 --------------------编程问答-------------------- 向窗体添加一个“ContextMenuStrip”控件 然后再在上面添加右键里的每个项,然后再改DataGridView的ContexMenuStrip属性 改成 “ContextMenuStrip”控件的名称 如“contextMenuStrip1” --------------------编程问答-------------------- 如果你不是实现全部dataGridView控件的右键菜单

在响应一下MouseMove,把你要添加的菜单添加到你想响应的那个列里面

eg
if (你的列)
{
    this.dataGridView1.ContextMenuStrip = this.menu1;
}
else
{
this.dataGridView1.ContextMenuStrip = null;
} --------------------编程问答-------------------- 先添加个contextMenuStrip控件,然后将DataGridView的contextMenuStrip属性设置为刚才添加的那个控件,然后在contextMenuStrip控件上添加菜单 --------------------编程问答-------------------- 可以随意添加菜单,但是怎么传递参数呢 --------------------编程问答--------------------
引用 9 楼 qiuxin425 的回复:
使用ContextMenuStrip控件(名称menu1), 添加你需要的事件,菜单名称。

然后再dataGridView控件的ContextMenuStrip属性里放上menu1

就实现右键菜单了

+! --------------------编程问答--------------------
引用 5 楼 jtlsoft007 的回复:
按照楼上的方法,如果我要想在任意一行的任意一列上点击右键出现菜单,岂不是要遍历一遍?
有好方法吗?

不用啊 --------------------编程问答-------------------- 原理: 
定义OnMouseDown事件;
取鼠标坐标;
定义要呈现的控件,并设置坐标。

//如果为右键
if(e.MouseButton=MouseButton.Right)
{
  //设置坐标
  e.Position.X=要呈现控件.Position.X;
  e.Position.Y=要呈现控件.Position.Y; //e.Position=要呈现控件.Position;
  要呈现控件.Show();

  //要呈现控件.OnMouseOut+=(a,b)=>{ (a as 要呈现控件).Close(); }
}

//代码拼写有错,见谅。实现方法之一如上  --------------------编程问答-------------------- 学习了呵呵呵!!!
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,