【问题标题】:How to prevent container to autoscroll when a partially-visible child control got focus?当部分可见的子控件获得焦点时,如何防止容器自动滚动?
【发布时间】:2011-12-17 12:54:02
【问题描述】:

启用滚动条的面板有很多按钮。如果我按下制表键,焦点会在按钮之间导航。

当部分可见的按钮获得焦点时,面板会自行滚动以完全显示该按钮。

有没有办法防止这种滚动?

【问题讨论】:

  • 你到底为什么想要那个?如果一个按钮有焦点,它就是用户关注的焦点。他们应该能够看到整个事情。想象一下,如果它说“格式化驱动器”;他们可能希望在按下 Enter 之前能够清楚地阅读它。
  • 只是因为当用户点击滚动条时,我不希望按钮在鼠标按下时完全显示,在鼠标按下时重新部分显示。

标签: vb.net winforms focus autoscroll


【解决方案1】:

您必须创建自己的 Panel 控件并覆盖 ScrollToControl 方法:

Public Class PanelEx
  Inherits Panel

  Protected Overrides Function ScrollToControl(activeControl As Control) As Point
    Return Me.AutoScrollPosition
  End Function

End Class

【讨论】:

  • 老兄,非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多