问题:

1. 开发时,我的winform程序中有很多gridview,我希望右键菜单只在我点击非空的行时才显示,点击其他空白区域时不显示;

2. 有一个树状导航图,treelist 中的节点都有右键菜单,我希望只在我点击这个节点时才显示右键菜单,点击treelist的空白位置不显示右键菜单。

实现:

1.

      #region 右键菜单
private void gvSlurry_MouseUp(object sender, MouseEventArgs e)
{
GridHitInfo _gridHI = gvSlurry.CalcHitInfo(new Point(e.X, e.Y));
if (e.Button == MouseButtons.Right && _gridHI.RowHandle > )//根据当前选中的行数非空来确定右键菜单显示。
{
menuRow.Show(MousePosition);
}
}
#endregion /// <summary>
/// 右键菜单选项弹出条件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvSlurry_PopupMenuShowing(object sender, PopupMenuShowingEventArgs e)
{
int _select = gvSlurry.SelectedRowsCount;
menuUpdate.Enabled = false;
menuDelete.Enabled = false;
if (_select == )
{
menuUpdate.Enabled = true;
menuDelete.Enabled = true;
}
else if (_select > )
{
menuDelete.Enabled = true;
}
}

需要注意的是:

这里的右键菜单使用的是ContextMenuStrip控件;

GridControl下的ContextMenuStrip不绑定控件ContextMenuStrip1;

这里用到了GridView的两个事件,一个是MouseUp事件,一个是PopupMenuShowing事件。第二个事件是用来在菜单显示之前对菜单的现实条件做一些限制,比如说我这里的选中一条记录是右键删除和更新都可用,选中多条记录时右键只有删除可用。

2.

        private void treeList1_MouseUp(object sender, MouseEventArgs e)
{
TreeList _tree = sender as TreeList;
if (Equals(e.Button, MouseButtons.Right) &&
Equals(ModifierKeys, Keys.None) &&
Equals(treeList1.State, TreeListState.Regular))
{
Point _point = new Point(Cursor.Position.X, Cursor.Position.Y);
TreeListHitInfo _hitInfo = _tree.CalcHitInfo(e.Location);
if (_hitInfo.HitInfoType == HitInfoType.Cell)
{
_tree.SetFocusedNode(_hitInfo.Node);
}
else
{
return;
} if (_tree.FocusedNode.HasChildren)
{
popupMenu1.ShowPopup(_point);
}
else
{
popupMenu2.ShowPopup(_point);
}
}
}

DEV中右键菜单如何只在非空单元格上显示?的更多相关文章

  1. Excel表格中无法中间插入新行列! 提示:在当前工作表的最后一行或列中,存在非空单元格,解决方案

    excel中新增行列时报错: 提示:在当前工作表的最后一行或列中,存在非空单元格,所以无法插入新行或新列.

  2. EXCEL小技巧:如何统计非空单元格

    http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数: 1.COUNT(value1 ...

  3. pandas向左移动非空单元格

    碰到个小问题, 因为需要更改excel 的行为. 处理最多的还是excel的事, 不过看起来是excel.实际上对pandas 的库的熟悉.读取,更改,应用等等,方法. 十分有用. 先说需求,本来的表 ...

  4. Excel 如何统计非空非零单元格的个数

    使用 Excel 统计非空非零单元格的个数: ——使用函数 :=COUNTIFS($B$2:$B$194440,"<>",$B$2:$B$194440,"&l ...

  5. Jquery EasyUI中treegrid的中右键菜单和一般按钮同时绑定事件时的怪异事件

    做个项目使用jquery  easyui来做前端,也许是对此不是很熟悉,总是发现一些不可理解的事件. 主要源代码如下: <script type="text/javascript&qu ...

  6. Excel中公式的绝对引用和相对引用单元格

    在Excel的表格中,非常常用的就是公式里的绝对引用和相对引用了,具体情况请看下列表格吧. 步骤1 打开做好的excel表格.公式中的相对单元格引用是基于包含公式和单元格引用的单元格的相对位置,若公式 ...

  7. DataGridView中在新增行时怎样设置每个Cell单元格的字体样式

    场景 DataGridView怎样实现添加.删除.上移.下移一行: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10281414 ...

  8. 页面中的radio选择适合的非空判断

     var cyjb=$('input:radio[name="jcrwModel.cyjb"]:checked').val();                if(cyjb==n ...

  9. 单击Gridview中LinkButton,获取当前行索引及某单元格值,进行相关处理

    1.在Gridview中添加模板列,在其中加入Linkbuttion,增加CommandName属性 (设置命令名),并赋值 <asp:TemplateField HeaderText=&quo ...

随机推荐

  1. maven多个web模块进行合并

    原文地址: https://blog.csdn.net/u011666411/article/details/77160907

  2. Leetcode#191. Number of 1 Bits(位1的个数)

    题目描述 编写一个函数,输入是一个无符号整数,返回其二进制表达式中数字位数为 '1' 的个数(也被称为汉明重量). 示例 : 输入: 11 输出: 3 解释: 整数 11 的二进制表示为 000000 ...

  3. Faster RCNN 学习笔记

    下面的介绍都是基于VGG16 的Faster RCNN网络,各网络的差异在于Conv layers层提取特征时有细微差异,至于后续的RPN层.Pooling层及全连接的分类和目标定位基本相同. 一). ...

  4. $Django 支付宝支付,微信服务号推送消息 (测试需要把应用程序部署到服务器上)

    一 支付宝支付 大概 支付宝支付 正式环境:需要用营业执照去申请商户号,appid 测试环境:沙箱环境:https://openhome.alipay.com/platform/appDaily.ht ...

  5. SpringBoot 多数据源分布式事务

    1.pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId> ...

  6. 如何使用 Lucene 做网站高亮搜索功能?

    现在基本上所有网站都支持搜索功能,现在搜索的工具有很多,比如Solr.Elasticsearch,它们都是基于 Lucene 实现的,各有各的使用场景.Lucene 比较灵活,中小型项目中使用的比较多 ...

  7. 基于Python+Django重定向的例子

    Django源码, 这里HttpResponseRedirect和HttpResponsePermanentRedirect没有太大差别,前者是返回302临时重定向,后者返回301永久重定向 clas ...

  8. 利用Centos服务器来搭建自己的splash,不再被安装的各种环境繁琐而担忧

    Centos7.5 ----- docker ------- splash               第一步:服务器环境的配置               第二步:dcoker环境的配置       ...

  9. C#生成唯一值的方法汇总

    生成唯一值的方法很多,下面就不同环境下生成的唯一标识方法一一介绍,作为工作中的一次总结,有兴趣的可以自行测试: https://www.cnblogs.com/xinweichen/p/4287640 ...

  10. pandas画图-【老鱼学pandas】

    本节主要讲述如何把pandas中的数据用图表的方式显示在屏幕上,有点类似在excel中显示图表. 安装matplotlib 为了能够显示图表,首先需要安装matplotlib库,安装方法如下: pip ...