【问题标题】:How to fix weird scrolling/alignment behavior when using keyboard in MenuStrip?在 MenuStrip 中使用键盘时如何解决奇怪的滚动/对齐行为?
【发布时间】:2010-04-09 16:08:02
【问题描述】:

在浏览我的 Winforms 应用程序的主工具栏时,我开始注意到奇怪的行为,但我不知道如何解决它。当我最初打开文件菜单的下拉菜单时,它看起来像这样:

我开始用箭头键向下滚动每个项目,一切都很好,直到我到达“退出”。一旦我从“注销”中按下向下箭头键,或者如果我从“打开”中按下向上箭头键,菜单就会重新排列,如下所示:

我对这种行为感到困惑。菜单仍然有效,从这一点开始,如果我开始向上滚动,我可以让排列恢复正常:

一些观察:

  • 菜单仍然有效。
  • 使用鼠标时不会发生这种情况。
  • 我有一些代码可以切换某些菜单项的Visible 属性。我可以通过摆弄这个来修改安排,但它仍然一团糟。

谁能帮助我了解发生了什么,以及如何解决它?

【问题讨论】:

    标签: c# .net winforms user-interface


    【解决方案1】:

    我找到了这个问题的根源。这是一个known bug,微软显然不打算修复。当您尝试在运行时切换菜单项的可见性/可用性时,就会出现问题。微软提醒我们“这个问题纯粹是视觉问题,没有功能损失。”

    他们建议的解决方法是添加/删除菜单项,而不是显示/隐藏它们。

    论坛上推荐另一个workaround:派生自 ToolStripDropDownMenu,关闭 AutoSize,自行处理,并增加 1 个额外像素的高度。

    我找到了解决此问题的blog post,但作者从未有时间发布他的解决方案。然而,他提出了关于可见与可用的有用观点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-07
      • 2019-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-06
      相关资源
      最近更新 更多