问题:

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 > 0)//根据当前选中的行数非空来确定右键菜单显示。{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 == 1){menuUpdate.Enabled = true;menuDelete.Enabled = true;}else if (_select > 1){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);}}}

转载于:https://www.cnblogs.com/Alex1994/p/9882848.html

DEV中右键菜单如何只在非空单元格上显示?相关推荐

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

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

  2. len,counta, “”连接符号,字符串长度,非空单元格数量

    len()返回字符串的个数值 worksheetfunction.counta()返回区域内非空单元格数量 所有的字符串的连接都需要 & 符号,而文本内容需要用" "引起来 ...

  3. VBA- 设置指定列的文字对齐方式(遍历指定列,获取最后一行非空单元格行号)

    Sub isColInfo(sheet As Worksheet)Dim LastRow As IntegerDim arrCol As VariantarrCol = Array("C&q ...

  4. Excel表中右键菜单显示不正常的处理方法

    之前碰到过几个用户Excel 表中右键菜单只显示几个选项,正常的功能都无法显示. 处理方法 删除 Excel目录下的 Excel15.xlb文件即可恢复 方法一 直接将下面的命令复制到cmd中运行 d ...

  5. 修复迅雷在 IE 等浏览器中右键菜单丢失或失效的问题

    修复迅雷(Thunder)在 IE 等浏览器中右键菜单丢失或失效的问题

  6. 问题解决:SqlParameterCollection只接受非空的SqlParameter类型对象,不接受SqlParameter[]对象

    做.net个人版机房收费系统时,遇到了这样一个问题: 既然提到了SqlParameter,那就意味着设置参数处出现了问题,但是到底是哪里出了问题呢,之前运行的时候也没有出错呀,怎么现在又出现了这样的错 ...

  7. OracleParameterCollection 只接受非空的 OracleParameter 类型对象

    OracleParameterCollection 只接受非空的 OracleParameter 类型对象,不接受 OracleParameter[] 对象. 改成下图的,就行了

  8. 如何删除UITableView中的空单元格? [重复]

    本文翻译自:How to remove empty cells in UITableView? [duplicate] This question already has an answer here ...

  9. 在GridView中针对鼠标单击的某一独立单元格进行编辑

    原文地址: http://www.codeproject.com/KB/webforms/EditGridviewCells.aspx [原文源码下载] [译者改后源码下载] 作者:Declan Br ...

  10. html 表格 单击,在HTML表格中单击“空”单元格

    我希望使HTML表格的所有单元格都可点击 - 即从锚点标记链接处于活动状态 - 从单元格内的任意点开始.问题在于单元没有内容.我们只是简单地使用HTML表格通过着色每个单元格的背景来直观地表示数量.要 ...

最新文章

  1. Windows下Eclipse+PyDev安装Python开发环境
  2. 计算机基础——原码、反码、补码转换
  3. linux语言 翻译工具,Linux文本转语音工具eSpeak介绍
  4. 获得BootstrapTable行号index
  5. ES6学习笔记(四):教你轻松搞懂ES6的新增语法
  6. 建立、遍历二叉树(二叉链表)
  7. 使用ASP.NET MVC对用户组的自定义授权
  8. Python“制作”midi音乐“两只老虎”
  9. DeFi巨鲸0xb1向DeBank打赏5 ETH
  10. Idea tomcat控制台日志乱码
  11. 接收list参数_Python 犄角旮旯--List
  12. obs中音频和视频的同步
  13. NIO server client
  14. python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
  15. 这个寒冷的冬天 是谁的机会?
  16. linux平台MSG_OOB选项测试
  17. cxf webservice接口
  18. CCV使用两个PGR Firefly摄像头源码
  19. 【Atcoder】AtCoder Beginner Contest 174总结
  20. st25dv--NFC学习

热门文章

  1. B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
  2. c语言旋转led时钟设计报告,《基于单片机的LED旋转时钟设计报告》.doc
  3. 过往记忆大数据 USDP 实测搭建,可替代CDH的免费大数据套件平台
  4. [【震撼】珠海中学曝【师生课堂互殴门】]
  5. 1250_FreeRTOS_QEMU_M3_blinky例程梳理分析
  6. 用python画一只加拿大电鳗
  7. 寻找因数——算法简化
  8. java程序往微信群里发消息_通过java程序,给微信发送消息
  9. 苹果手机升级后开不了机怎么办_iPhone8突然黑屏开不了机怎么办?西安苹果售后维修点教你这样解决...
  10. optionsAPI与compositionAPI