XtraTabPage右键菜单(关闭当前页、关闭其它页、所有关闭的实现)
实现的需求:
用户习惯是一个不可忽略的东西,默认这版的dx的tab也木有右键操作,但用户习惯操作如浏览器都有右键关闭功能,故这里实现先dx的该功能
技术实现:
(1)在winform的相应控件内,拖入以下dx的控件

(2)初始化右键的菜单项
private void InitPopMenu()
{
BarButtonItem barItemCurrent = new BarButtonItem
{
Name = "barItemCurrent",
Caption = "关闭当前"
};
barItemCurrent.ItemClick -= BarItemCloseCurrentClick;
barItemCurrent.ItemClick += BarItemCloseCurrentClick;
BarButtonItem barItemOther = new BarButtonItem
{
Name = "barItemOther",
Caption = "关闭其他"
};
barItemOther.ItemClick -= BarItemCloseOtherClick;
barItemOther.ItemClick += BarItemCloseOtherClick;
BarButtonItem barItemAll = new BarButtonItem
{
Name = "barItemAll",
Caption = "关闭全部"
};
barItemAll.ItemClick -= BarItemCloseAllClick;
barItemAll.ItemClick += BarItemCloseAllClick;
popupMenu.LinksPersistInfo.AddRange(new LinkPersistInfo[] { new LinkPersistInfo(barItemCurrent), new LinkPersistInfo(barItemOther), new LinkPersistInfo(barItemAll) });
}
(3)绑定tab页的右键
private void XtraTabControlMouseUp(object sender, MouseEventArgs e)
{
if (e.Button == MouseButtons.Right)
{
XtraTabControl tabCtrl = sender as XtraTabControl;
var pt = e.Location;
if (tabCtrl != null)
{
XtraTabHitInfo info = tabCtrl.CalcHitInfo(pt);
if (info.HitTest == XtraTabHitTest.PageHeader)
{
popupMenu.ShowPopup(MousePosition);
}
}
}
}
(4).效果图如下:
ok,到此右键菜单完成,建议封装一个继承与XtraTabControl的用户自定义控件,在此用户控件内封装好右键菜单。
下一次,讲一下tab页的拖拽,这里透漏一下,实际项目里遇到了dx里tab内关闭按钮的小叉叉跟拖拽的鼠标左键拖拽代码冲突,就是说点击小叉叉不能关闭了。好在后来找到了解决方法~
XtraTabPage右键菜单(关闭当前页、关闭其它页、所有关闭的实现)的更多相关文章
- [DevExpress]XtraTabControl右键加入关闭当前页、关闭其它页、所有关闭的实现
private void xtraTabControl_MouseDown(object sender, MouseEventArgs e) { if (e.Button == MouseButton ...
- Flex4_Tree组件1(添加、删除、展开、关闭、右键菜单)
1.屏蔽系统菜单:工程目录“html-template”文件夹-->“index.template.html”文件中,在var params = {};语句下添加新语句: para ...
- arcengine实现右键菜单打开/关闭所有图层
参考资料: http://developer.51cto.com/art/201104/256774.htm 参照后自己做的: 关于右键菜单的几个有价值的网址: http://blog.csdn.n ...
- easyui修复浏览器刷新后,tab页全部关闭的问题
一.问题描述 使用easyui搭建的上左右页面布局,当我们在右侧打开了tab页,发现点击浏览器的刷新按钮后,整个页面会被重新渲染,导致所有打开的tab页都被关闭,回到初始状态的问题. 这个问题虽然不影 ...
- 使用easyui为tab页增加右键菜单
在使用easyui进行上左右布局一文中,我们已经使用easyui搭建起了一个简单的上左右布局.在使用的过程中,我们经常会遇到tab页打开的太多,但只能一个一个的关闭的烦恼,这个时候有没有想到eclip ...
- JS关闭当前页面的方法
JS关闭当前页面的方法 一.不带任何提示关闭窗口的js代码 1 <a href="javascript:window.opener=null;window.open('','_self ...
- chrome JS关闭当前页无效问题
如果没有父窗口,JS中 window.opener = null; window.open("", "_self"); window.close(); 对chr ...
- ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作
ThinkPHP 表单提交操作成功后执行JS操作如何刷新父页面或关闭当前页等操作 .操作成功后刷新父页面 $this->assign('jumpUrl', "javascript:wi ...
- js打开新页面 关闭当前页 关闭父页面
js打开新页面.关闭当前页.关闭父页面 2010-04-29 14:04:13| 分类: 页面与JavaScript | 标签: |字号大中小 订阅 //关闭当前页面,并且打开新页面,(不 ...
随机推荐
- Ubuntu 安装后的配置及美化(二)
Ubuntu安装后的配置与美化(二) 上篇文章讲了安装ubuntu后的一系列基础的配置,已经可以满足日常的使用了,这篇文章讲一下安装 IDE 及一些其他的配置. 1.安装 SSR 下载 SSR 客户端 ...
- Python3之uuid模块
一. 简介 UUID是128位的全局唯一标识符,通常由32字节的字母串表示.它可以保证时间和空间的唯一性,也称为GUID. 全称为:UUID--Universally Unique IDentifie ...
- 条目八《永不建立auto_ptr的容器》
条目八<永不建立auto_ptr的容器> 重要的事说三次,永不建立auto_ptr的容器,永不建立auto_ptr的容器,永不建立auto_ptr的容器!!! 为什么? 实质是auto_p ...
- SJTU 机试 最小面积子矩阵 压缩+双指针
链接:https://www.nowcoder.com/questionTerminal/8ef506fbab2742809564e1a288358554来源:牛客网 一个N*M的矩阵,找出这个矩阵中 ...
- js 获取滚动条事件
function getScroll() { return { left: window.pageXOffset || document.documentElement.scrollLeft || d ...
- \\.\Global\vmx86: 系统找不到指定的文件
使用vmware虚拟机时出现如下的错误: vmware安装无法打开内核设备 \\.\Global\vmx86: 系统找不到指定的文件 解决办法: 新建文件,将下面的代码拷贝进去: @Echo Off ...
- sharding-jdbc数据分片配置
数据分片 不使用Spring 引入Maven依赖 <dependency> <groupId>org.apache.shardingsphere</groupId> ...
- BZOJ - 2818 莫比乌斯反演 初步
要使用分块的技巧 #include<iostream> #include<algorithm> #include<cstdio> #include<cstri ...
- URAL - 1297 后缀数组的做法 LCP应用
题意:求最长回文子串 这种有专门的O(n)套板子算法,但作为练习还是用后缀数组来解吧 只需把相同的另一个串反接(中间用一个足够小且未出现的字符衔接),然后枚举回文串的中点,不断求解该点往前和往后计算的 ...
- BZOJ - 2440 容斥定理
组合枚举n/i/i,贡献为miu倍 /*H E A D*/ int mu[maxn],prime[maxn],cnt; bool isprime[maxn]; void sai(int n){ mu[ ...