当它的控件超出表单查看区域时,有什么方法可以在 StatusStrip 中滚动?我的 StatusStrip 充当带有许多标签(充当按钮)的任务栏,如果标签太多,可能会超出屏幕范围。
1 回答
我从未在我使用过的任何 Windows 应用程序中看到滚动状态栏控件。
你可能认为这是一个无关紧要的点,但我提到它是有原因的。设计与您的平台约定一致的应用程序具有巨大的优势,因此也符合您的用户期望。这些应用程序更容易编写(打破规则总是比遵守规则更难),并且用户更容易理解和使用。
很有可能,即使有滚动条,用户也永远不会找到并使用它,因为他们不希望在状态栏控件上找到滚动条。我当然不会。我会在那里寻找我希望找到的信息,而不是找到它,然后感到沮丧。像大多数用户一样,我不会费心阅读文档来了解我必须滚动一些永远无法滚动的东西。我只是得出结论,您的应用程序的用户界面很糟糕,然后就可以完成了。
事实上,尽管你和我作为程序员可能会想到典型的 [愚蠢] 用户,但作为典型的愚蠢用户,我会是完全正确的!您的应用程序的 UI确实很糟糕,因为它不标准且难以使用。这是许多程序员不理解或不欣赏的东西,但它非常重要。
因此,我强烈建议您重新考虑应用程序的 UI 设计。主要关注点(并且只是一般的良好设计)应确保重要信息显示或访问多个位置,而不仅仅是在状态栏中。另一种选择是在状态栏中显示较少的信息。就像 Windows 资源管理器一样,您应该在可用屏幕空间缩小时自动隐藏不太重要的信息,并在您有必要的空间时显示更多信息。使资源管理器窗口非常小,您只会在状态栏中看到基本的必需品。
但是,如果您决定忽略所有这些建议并搞砸您已经决定的内容,请继续阅读...该StatusStrip
控件继承自ScrollableControl
,这意味着它具有和 等AutoScroll
属性HScroll
。但是文档表明这些属性是:
基础设施。此属性与此类无关。
这意味着控件不支持它们StatusStrip
。您也许可以继承StatusStrip
并编写自己的滚动代码,但这对我来说听起来像是很多工作。
更简单的解决方案可能是在表单底部停靠一个Panel
控件,然后在其中放置一个StatusStrip
控件Panel
。确保您设置了AutoScroll
容器Panel
控件的属性,并且它应该自动展开(使用滚动条)以显示整个StatusStrip
控件。