WinForms选项卡控件替换,可用于大量选项卡

时间:2010-12-08 19:03:54

标签: winforms tabcontrol

我们的应用程序有一个标签控件,显示可变数量的标签。大多数时候,有一些标签,“标签”比喻简单易用。

但在极少数情况下(使用某些类型的数据时),我们可能需要比屏幕上更多的标签。当发生这种情况时,可靠的选项卡控件不再是良好的用户体验。无论您是执行多行选项卡还是小滚动按钮,找到您想要的选项卡都会让您头痛不已。

Visual Studio的编辑器可以相对优雅地处理这种情况。它一次只显示有限数量的标签(但是很多标签适合屏幕);如果你想要一些当前不可见的东西,有一个显示完整列表的下拉按钮。 是否有任何提供类似功能的第三方WinForms标签控件 - 一次只有几个标签,还有一个下拉列表?

实际上有时甚至下拉列表太长而无法放在屏幕上,因此了解任何制表符控件如何处理它会很有帮助。滚动条(您可以将拇指快速拖动到右边的区域)会很棒;所以使用键盘进行增量搜索。

出于这个问题的目的,假设用一些其他UI比喻(例如左侧的列表框)替换选项卡不是一种选择。 (我们正在探索这个问题,但这不是这个问题的关键所在。)

2 个答案:

答案 0 :(得分:2)

Telerik有一个广告Winforms control library,其中有一个名为RadPageView的控件。这可能与您在StripView模式下描述的行为类似。尽管如此,该库的成本很高。

DevExpress还有一个名为XtraTabControl的XtraEditors库。这有一个“模拟Visual Studio 2005标签界面的附加绘画风格”,虽然没有看起来像什么的屏幕截图。在this页面上有一个屏幕截图,虽然它看起来不像你需要的。

答案 1 :(得分:1)

Infragistics有一个WinTab control可以自定义来执行此操作。如果将ShowTabListButton设置为True,则会显示下拉按钮,其中显示所有选项卡的列表;如果您将ScrollButtons设置为None并将ShowPartialTab设置为False,它将仅显示适合的多个选项卡。

它也非常高效 - 我可以在不到一秒的时间内添加750个标签(而标准WinForms TabControl为6秒,DevExpress XtraTabControl为43秒)。它甚至支持在所有页面上共享的内容,这恰好是我们的应用程序所需要的。

唯一的缺点是,当您点击“标签列表”下拉菜单时,它会在下拉菜单中显示该列表。此菜单不支持使用键盘进行增量搜索;如果菜单高于屏幕上的菜单,则无法快速滚动 - 您只需“向上滚动”和“向下滚动”按钮,这些按钮会缓慢滚动。因此,当列表长度超过屏幕时,此下拉菜单就像在水平滚动一长串标签一样无法使用。

另一方面,有一个SpaceAfterTabs属性,它允许您在最后一个选项卡的右侧留下空白区域。可以在该空白区域中放置一个组合框或其他类型的下拉控件,并滚动您自己的,性能更好的溢出“菜单”。