C# datagridview 右键菜单
要实现以下功能1、当datagridview有数据时,右击菜单显示三个选项;当datagridview没有数据时,右击空白处显示一个选项。
2、点击列头不显示右键菜单。
3、列头禁止排序。
现在不知道在datagridivew有数据时 右击空白处的事件怎么拿到 ,求助! --------------------编程问答-------------------- mouseclick中,判断是否右键 --------------------编程问答--------------------
这个能判断是否为右键,现在不知道怎么判断是否点击的是空白处,比如有三条数据 怎么区别右击的时候是点击的数据还是datagridview的空白地方 --------------------编程问答-------------------- 没看很懂,contextMenuStrip控件,然后判断datagridview是否有数据
右击空白处的事件是指什么? --------------------编程问答-------------------- 生成MouseClick事件,然后判断是否是右键。只够再判断鼠标点击的单元格是否为空,为空显示一个菜单,不为空判断单元格的索引e.Index是否等于0。个人意见要是我会这么做的,希望对你有用 --------------------编程问答--------------------
如上图所示
请高手指点 --------------------编程问答-------------------- 用mousedown事件
先计算datagridview最后一行的高度:行数乘以行高H
然后计算点击时鼠标的坐标Y
判断 Y<=H 调出菜单1 Y>H 调出菜单2 --------------------编程问答-------------------- 代码
--------------------编程问答--------------------
private void dataGridView1_MouseDown(object sender, MouseEventArgs e)
{
int h = (dataGridView1.Rows.Count + 1) * 21;
int y = e.Y;
if (y <= h)
{
dataGridView1.ContextMenuStrip = contextMenuStrip1;
}
else
{
dataGridView1.ContextMenuStrip = contextMenuStrip2;
}
}
如果行变的宽度用户调了呢?*21这样就产准确了吧 期待合理的解决方法 --------------------编程问答-------------------- 行高设置成用户可以调么,有什么意义么,很少见啊 --------------------编程问答-------------------- 如果设置成可调的话,高度计算改成循环行数求和就好了 --------------------编程问答--------------------
找到办法了,但是不是这个 --------------------编程问答-------------------- 除
补充:.NET技术 , C#