DEV中右键菜单如何只在非空单元格上显示?
问题:
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中右键菜单如何只在非空单元格上显示?相关推荐
- EXCEL小技巧:如何统计非空单元格
http://club.excelhome.net/thread-1187271-1-1.html 下面教大家如果用函数统计非空单元格的数量 首先我们来介绍几个统计函数: 1.COUNT(value1 ...
- len,counta, “”连接符号,字符串长度,非空单元格数量
len()返回字符串的个数值 worksheetfunction.counta()返回区域内非空单元格数量 所有的字符串的连接都需要 & 符号,而文本内容需要用" "引起来 ...
- VBA- 设置指定列的文字对齐方式(遍历指定列,获取最后一行非空单元格行号)
Sub isColInfo(sheet As Worksheet)Dim LastRow As IntegerDim arrCol As VariantarrCol = Array("C&q ...
- Excel表中右键菜单显示不正常的处理方法
之前碰到过几个用户Excel 表中右键菜单只显示几个选项,正常的功能都无法显示. 处理方法 删除 Excel目录下的 Excel15.xlb文件即可恢复 方法一 直接将下面的命令复制到cmd中运行 d ...
- 修复迅雷在 IE 等浏览器中右键菜单丢失或失效的问题
修复迅雷(Thunder)在 IE 等浏览器中右键菜单丢失或失效的问题
- 问题解决:SqlParameterCollection只接受非空的SqlParameter类型对象,不接受SqlParameter[]对象
做.net个人版机房收费系统时,遇到了这样一个问题: 既然提到了SqlParameter,那就意味着设置参数处出现了问题,但是到底是哪里出了问题呢,之前运行的时候也没有出错呀,怎么现在又出现了这样的错 ...
- OracleParameterCollection 只接受非空的 OracleParameter 类型对象
OracleParameterCollection 只接受非空的 OracleParameter 类型对象,不接受 OracleParameter[] 对象. 改成下图的,就行了
- 如何删除UITableView中的空单元格? [重复]
本文翻译自:How to remove empty cells in UITableView? [duplicate] This question already has an answer here ...
- 在GridView中针对鼠标单击的某一独立单元格进行编辑
原文地址: http://www.codeproject.com/KB/webforms/EditGridviewCells.aspx [原文源码下载] [译者改后源码下载] 作者:Declan Br ...
- html 表格 单击,在HTML表格中单击“空”单元格
我希望使HTML表格的所有单元格都可点击 - 即从锚点标记链接处于活动状态 - 从单元格内的任意点开始.问题在于单元没有内容.我们只是简单地使用HTML表格通过着色每个单元格的背景来直观地表示数量.要 ...
最新文章
- Windows下Eclipse+PyDev安装Python开发环境
- 计算机基础——原码、反码、补码转换
- linux语言 翻译工具,Linux文本转语音工具eSpeak介绍
- 获得BootstrapTable行号index
- ES6学习笔记(四):教你轻松搞懂ES6的新增语法
- 建立、遍历二叉树(二叉链表)
- 使用ASP.NET MVC对用户组的自定义授权
- Python“制作”midi音乐“两只老虎”
- DeFi巨鲸0xb1向DeBank打赏5 ETH
- Idea tomcat控制台日志乱码
- 接收list参数_Python 犄角旮旯--List
- obs中音频和视频的同步
- NIO server client
- python实现洗牌算法_【Python】洗牌算法及 random 中 shuffle 方法和 sample 方法浅析...
- 这个寒冷的冬天 是谁的机会?
- linux平台MSG_OOB选项测试
- cxf webservice接口
- CCV使用两个PGR Firefly摄像头源码
- 【Atcoder】AtCoder Beginner Contest 174总结
- st25dv--NFC学习
热门文章
- B站三季度财报解读丨从0到2.67亿月活,B站生态亮眼的密钥何在?
- c语言旋转led时钟设计报告,《基于单片机的LED旋转时钟设计报告》.doc
- 过往记忆大数据 USDP 实测搭建,可替代CDH的免费大数据套件平台
- [【震撼】珠海中学曝【师生课堂互殴门】]
- 1250_FreeRTOS_QEMU_M3_blinky例程梳理分析
- 用python画一只加拿大电鳗
- 寻找因数——算法简化
- java程序往微信群里发消息_通过java程序,给微信发送消息
- 苹果手机升级后开不了机怎么办_iPhone8突然黑屏开不了机怎么办?西安苹果售后维修点教你这样解决...
- optionsAPI与compositionAPI