我们可以保留表单滚动条但阻止表单自动滚动到焦点控件吗?

Can we keep the Form scrollbar but prevent the form from auto-scrolling to the focused control?

我想防止我的表单在底部的控件获得焦点时自动滚动,但仍然保留滚动条(如果它们出现的话)。

由于某些用户的屏幕分辨率比表单分辨率稍低,因此有时会出现滚动条。这会导致某些 DataGridView 出现问题。由于启用了 AutoScroll 选项,当单击 DataGridView 时,它会进行多选,因为我们单击并移动。

当我禁用 AutoScroll 属性 时,滚动条消失了。因此,用户无法看到所有内容。

有没有办法禁用AutoScroll,但仍然保留滚动条?

如果我对您的情况理解正确,您基本上希望用户能够手动滚动表单,但阻止表单自动滚动到获得焦点的控件。

将此代码放入您的表单中:

Protected Overrides Function ScrollToControl(activeControl As Control) As Point
    'Return MyBase.ScrollToControl(activeControl)   ' <-- Keep this line commented.
End Function

结果: