【问题标题】:WinForms tab-control replacement that's usable with a large number of tabsWinForms 选项卡控件替换,可用于大量选项卡
【发布时间】:2010-12-08 19:03:54
【问题描述】:

我们的应用有一个选项卡控件,可显示可变数量的选项卡。大多数时候,只有几个选项卡,“选项卡”比喻简单易用。

但在极少数情况下(在处理某些类型的数据时),我们可能需要比屏幕显示更多的选项卡。发生这种情况时,可信赖的选项卡控件不再是良好的用户体验。无论您是制作多行选项卡,还是使用小滚动按钮,找到您想要的选项卡都会变得非常头疼。

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

实际上有时即使下拉列表也太长而无法在屏幕上显示,因此了解任何选项卡控件如何处理它会很有帮助。滚动条(您可以将拇指快速拖动到正确的附近)会很棒;使用键盘进行增量搜索也是如此。

就这个问题而言,假设不能用其他一些 UI 隐喻(例如左侧的列表框)替换选项卡。 (我们正在探索,但这不是这个问题的目的。)

【问题讨论】:

    标签: winforms tabcontrol


    【解决方案1】:

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

    DevExpress 也有一个作为其 XtraEditors 库的一部分,称为 XtraTabControl。这有一个“模拟 Visual Studio 2005 选项卡式界面的附加绘制样式”,尽管没有屏幕截图显示它的外观。 this 页面上有一个屏幕截图,虽然它看起来不像您需要的。

    【讨论】:

    • 我们有 DevExpress——它的皮肤看起来与 VS 相似,但它不会导致下拉菜单溢出。 Telerik 看起来像我想的那样(尽管你说它很贵是对的)。当溢出下拉菜单太高而无法在屏幕上显示时,您是否碰巧知道 Telerik 的工作情况?
    • @Joe:没有,但他们有试用版,你可以试试。
    • Telerik 的下拉菜单确实有一个滚动条,这很好;但它有问题(例如,如果您在拖动滚动拇指时鼠标偏离滚动条的边界框,它们的行为就好像您单击了下拉列表中的一个项目,这既是错误的,也是非常令人迷惑的)。而且我终其一生都想不出如何让它看起来像一个普通的选项卡控件——它坚持要蓝色、有光泽并且浪费屏幕空间。 Telerik 没能打动我……
    【解决方案2】:

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

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

    唯一的缺点是,当您单击“选项卡列表”下拉菜单时,它会在下拉菜单中显示该列表。该菜单不支持键盘增量搜索;如果菜单的高度超过了屏幕的大小,则无法快速滚动——您只会看到“向上滚动”和“向下滚动”按钮,它们滚动得非常缓慢。因此,当列表的长度超出屏幕的大小时,此下拉菜单就像水平滚动一长串选项卡一样无法使用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-23
      • 2011-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多