找回密码
 立即注册

QQ登录

只需一步,快速开始

涛声依旧

注册会员

12

主题

31

帖子

101

积分

注册会员

积分
101

活字格认证

涛声依旧
注册会员   /  发表于:2014-9-18 15:51  /   查看:11575  /  回复:11
在主窗口中设计了一个DockingTab,里面添加了若干个Tabpage。现在已实现利用双击事件将某tabpage
隐藏起来的功能(tabpage.TabVisible = false)。
接着想实现将躲藏的tabpage重新显示出来的功能,想到了tablist,设想利用showTablistChanged事件来处理。但我在tablist中反复点击选择,似乎该事件根本没有被触发。
请教有什么办法(利用tablist的点击选择),将躲藏的tabpage重新显示出来?
谢谢!

11 个回复

倒序浏览
Alice
社区贡献组   /  发表于:2014-9-18 18:41:00
沙发
回复 1楼涛声依旧的帖子

可以使用C1DockingTab的ShowTabs属性,将其设置为false隐藏掉TabPage,然后设置为True,重新显示出来。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
涛声依旧
注册会员   /  发表于:2014-9-18 21:47:00
板凳
Alice你好,ShowTabs属性是控制标签(tab)显示与否的,当设为假时,就没有标签了。这个与我的问题不相干。
假设有“第1页”,“第2页”,“第3页”,“第4页”,界面上应显示4个选项卡,当我将”第3页隐藏起来(tabpage3.TabVisible = false),界面上应保留“第1页”,“第2页”,“第4页”共3个选项卡。
而此时,tablist仍有4个选项(包括隐藏的“第3页”,以上是正确的实情)。
我想实现点击tablist中的”第3页“,在触发的事件中将tabpage3.TabVisible 设为true,使得”第3页“显示出来。
此时界面上应有“第1页”,“第2页”,“第3页”,“第4页”这4个选项卡。
希望帮助解决,谢谢!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-19 09:19:00
地板
回复 3楼涛声依旧的帖子

当将第三页隐藏起来,它的确还是存在与tablist中的。但是窗体上是不会画第三页的,那么又如何在窗体上能够点击到第三页呢?所以自然不会触发它相关的事件。
这是微软的策略,你在任何窗体上添加一个标准控件,然后visible设置为false,它虽然存在于窗体,还可以代码得到它,但是不会被画出来,而且你根本没法点击到这个被隐藏的控件,没法点击到,自己不会触发事件。
通常的做法,应该提供其他的方式让它展示出来,比如有一个button,点击的时候将第三页展示出来。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
涛声依旧
注册会员   /  发表于:2014-9-19 10:18:00
5#
正因为这样,才想利用showTablistChanged。因为在tablist中,能枚举出所有tabpage(包括tabpage.TabVisible = false的隐藏tabpage)。

麻烦你告诉一下:
1、什么操作能触发showTablistChanged事件?
2、如何获得Tablist按钮的index值?

再次感谢!!
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-19 10:42:00
6#
回复 5楼涛声依旧的帖子

1.当C1DockingTab的ShowTabList属性的值发生改变的时候触发该事件,比如将C1DockingTab.ShowTabList设置为True或是False。
2.没有提供TabList这样的接口。ShowTabList的值决定是否显示这个下拉框。这个下拉框的page是由C1DockingTab.TabPages获取的。所有添加到C1DockingTab的TabPage都可以由TabPages获取。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
涛声依旧
注册会员   /  发表于:2014-9-19 11:05:00
7#
我们用鼠标操控tablist时,如点击第3项时,确实能让第3页选中并呈现出来。
请问,我能否捕捉得到用户用鼠标操作tablist的事件,如何能知道用户点击的是tablist中哪个项的index?
请帮助指点一下。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-19 18:20:00
8#
回复 7楼涛声依旧的帖子

如果第三页的tabVisible设置为false的话,在TabList的下拉框里也不会展示出来。被隐藏的第三页只能通过代码在C1DockingTab.TabPages里获取,或是直接获取第三页的TabPage这个控件。
对于操作tablist,C1没有提供相关的接口,如果需要这么做的话,需要自己去计算,比如根据MouseMove事件获取当前鼠标的位置,然后根据位置判断被点击的是哪个项。估计会比较复杂。
请点击评分,对我的服务做出评价!  5分为非常满意!

葡萄城控件服务团队

官方网站: http://www.gcpowertools.com.cn
回复 使用道具 举报
涛声依旧
注册会员   /  发表于:2014-9-19 19:50:00
9#
“如果第三页的tabVisible设置为false的话,在TabList的下拉框里也不会展示出来。”这个是猜测的吧!
我这边的情况是隐藏detabpage,在tablist中也显示的。
只要我能捕获到点击tablist的事件,后面的事就非常简单了。请帮助解决一下。
回复 使用道具 举报
Alice
社区贡献组   /  发表于:2014-9-22 10:18:00
10#
回复 9楼涛声依旧的帖子


你好,我一直在强调C1的接口没有提供可以捕获tablist的方法。

-->“如果第三页的tabVisible设置为false的话,在TabList的下拉框里也不会展示出来。”这个是猜测的吧!
有关这个结论并不是我猜测出来的,是根据文档和测试得出的结论。不知道我哪点的回复会给你不专业的感觉,麻烦你指出,我会在今后努力修正。
我目前使用的版本是2014 v2,最新版。将第三页的TabVisible设置为False后,运行效果如下图显示:




如果我理解有误,还请指出。

本帖子中包含更多资源

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

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

葡萄城控件服务团队

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