找回密码
 立即注册

QQ登录

只需一步,快速开始

CP32014

中级会员

8

主题

16

帖子

880

积分

中级会员

积分
880

活字格认证

CP32014
中级会员   /  发表于:2015-1-4 09:55  /   查看:11928  /  回复:11
我每次要往C1DockTabControl里动态添加tabitem 现在要解决一个问题:禁止重复打开相同的tab页。这就需要用到tabitem的关闭事件。在不拖拽tabitem的情况下 ,是能触发tabitem的closed事件的。但是拖拽后就不行了。能否帮忙想个解决的办法。麻烦了!
代码如下:
<c1:C1DockControl Grid.Row="1" Name="MyDock">
<c1:C1DockTabControl Name="dtcHis"  TabStripPlacement="Top" TabStripMenuVisibility="Visible" ShowHeader="False" TabItemShape="Sloped" TabStripOverlap="5"  HorizontalFill="True" VerticalFill="True" CanUserReorder="True" TabItemClose="InEachTab"  TabItemClosed="dtcHis_TabItemClosed">
*****这里动态添加tabitem***********
</c1:C1DockTabControl>
</c1:C1DockControl>

11 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2015-1-4 19:17:00
沙发
回复 1楼CP32014的帖子

你的问题已经收到,明天给您反馈。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-5 10:57:00
板凳
回复 1楼CP32014的帖子

使用如下代码动态添加的C1TabItem,没有重现你提出的问题。
在初始化添加C1TabItem的代码如下:
  1. C1TabItem item;
  2.                 for (int i = 0; i &lt; 3; i++)
  3.                 {
  4.                     item = new C1TabItem();
  5.                     this.dtcHis.Items.Add(item);
  6.                 }
复制代码


另外在运行时候,对C1TabItem进行拖拽,当鼠标单击C1TabItem的close的button的时候,依然可以触发TabItemClosed事件,所以该问题依然没有重现。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CP32014
中级会员   /  发表于:2015-1-5 11:17:00
地板
试了下 还是不行啊 只要拖动到其他地方 关闭事件就进不去。


可否把你们测试的队的demo发我看下呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
CP32014
中级会员   /  发表于:2015-1-5 12:17:00
5#
回复 2楼Alice的帖子

问下 哪个属性是控制tabitem可拖拽的?刚试了下 动态添加C1tabitem后拖拽不了
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-5 15:52:00
6#
回复 5楼CP32014的帖子

C1DockTabControl的CanUserReorder设置为true,就可以在运行时拖拽TabItem进行更改Order。
测试Demo如下所示:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CP32014
中级会员   /  发表于:2015-1-5 20:15:00
7#
回复 6楼Alice的帖子

版主,刚我看了下demo 发现也不能拖拽 就只能左右之间交换位置 我指的拖拽是指tabitem可以拖到任意区域 就像4楼里发的那张图一样。 求助啊
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-6 10:43:00
8#
回复 7楼CP32014的帖子

抱歉对这个问题的理解有误,C1TabItem不支持拖拽出来。
如果需要将它拖出来的话,需要将C1TabItem换成C1DockTabItem。
代码参考:
  1.   C1.WPF.Docking.C1DockTabItem item;
  2.             for (int i = 0; i &lt; 3; i++)
  3.             {
  4.                 item = new  C1.WPF.Docking.C1DockTabItem();
  5.                 item.Header = &quot;test&quot; + i.ToString();           
  6.                 this.dtcHis.Items.Add(item);
  7.             }
复制代码

替换后,运行时候拖拽的效果如下图:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
CP32014
中级会员   /  发表于:2015-1-6 13:04:00
9#
回复 8楼Alice的帖子

能拖了。但是又回到了开始的问题,就是拖了之后 点击关闭,没有触发关闭事件。能帮看下原因和给个解决方案吗
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2015-1-6 14:57:00
10#
回复 9楼CP32014的帖子

你将C1DockTabItem从C1DockTabControl中拖拽出来,这个时候会从C1DockTabControl.Items中remove掉。鼠标的点击不会触发C1DockTabControl的事件,因为它已经不属于C1DockTabControl了。

或许可以自己通过C1DockTabItem的鼠标事件,判断是否closebutton被单击,这样实现。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
12下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部