包含控件获得焦点时阻止AutoScroll

我有一个Panel有两个Button ,其中一个是部分隐藏的。 当部分隐藏按钮获得焦点时 – 例如当单击另一个按钮然后单击它时(原始) – 面板将滚动。 我需要垂直滚动条而不是自动滚动,并且似乎无法在没有自动滚动的情况下获得正常运行的滚动条。

代码:

 using System.Drawing; using System.Windows.Forms; namespace test { public partial class Form1 : Form { Panel panel = new Panel { AutoScroll = true, Size = new Size(200, 200), Location = new Point(0, 30), }; Button b1 = new Button { Location = new Point(100, 100), Size = new Size(50, 150), BackColor = Color.Black }; Button b2 = new Button(); public Form1() { InitializeComponent(); panel.Controls.Add(b1); Controls.Add(panel); Controls.Add(b2); } } } 

使用可以访问VScroll属性的派生类。

但更简单,更好用:

覆盖ScrollToControl 。 请参阅如何阻止Winforms面板滚动? 。