Vb.net 当部分可见的子控件获得焦点时,如何防止容器自动滚动?

Vb.net 当部分可见的子控件获得焦点时,如何防止容器自动滚动?,vb.net,winforms,focus,autoscroll,Vb.net,Winforms,Focus,Autoscroll,启用滚动条的面板有许多按钮。如果我按下制表键,焦点将在按钮之间导航 当部分可见的按钮具有焦点时,面板会自动滚动以完全显示按钮 有什么方法可以防止滚动吗?您必须创建自己的面板控件,并覆盖ScrollToControl方法: Public Class PanelEx Inherits Panel Protected Overrides Function ScrollToControl(activeControl As Control) As Point Return Me.Auto

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

当部分可见的按钮具有焦点时,面板会自动滚动以完全显示按钮


有什么方法可以防止滚动吗?

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

Public Class PanelEx
  Inherits Panel

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

End Class

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

Public Class PanelEx
  Inherits Panel

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

End Class

你到底为什么不想那样?如果一个按钮有焦点,它就是用户所关注的。他们应该能看到整个事情。想象一下,如果它说“格式化驱动器”;他们可能希望在按下[code>Enter键之前能够清楚地阅读它。这仅仅是因为当用户单击滚动条时,我不希望按钮完全显示在鼠标按下时,而部分显示在鼠标向上时。你到底为什么不希望这样?如果一个按钮有焦点,它就是用户所关注的。他们应该能看到整个事情。想象一下,如果它说“格式化驱动器”;他们可能希望在按下[code>Enter之前能够清楚地阅读它。这只是因为当用户单击滚动条时,我不希望按钮完全显示在鼠标下键时,而部分显示在鼠标上键时。老兄,非常感谢!伙计,非常感谢你!