同时滚动 2 个面板

5 .net c# scroll winforms

我有 Windows 窗体(.net 2.0)控件,其中包含一个 splicontainer 。Splitcontainer 通常包含 2 个面板(标准配置)。自动滚动设置为 true。

我已经花了很长一段时间来努力实现诸如同步这两个面板之类的事情,因此滚动其中一个面板也会滚动第二个面板。我实现了它 - 使用滚动事件(不是问题)。

但是,当我们通过其中一个面板上的控件(例如文本框)进行 Tab 键切换时,不会调用此事件 - 与 msdn.microsoft.com/en-us/library/system.windows.forms 上的情况不太一样。 scrollablecontrol.scroll.aspx(“当用户通过与滚动条交互在客户区域中滚动时,或者当用户在控件之间导航且活动控件滚动到视图中时,会发生 Scroll 事件。”。

所以,事实上,面板并没有真正同步:|

我知道这样一个事实,将焦点集中到可滚动控件中包含的不可见控件会调用它的 ScrollToControl(Control) 事件,该事件“使”新控件(文本框)可见。为了提供更多细节,我可以说两个面板是相同的(大小和控件)。

您将如何实现我正在寻找的目标?

Mar*_*ijn 1

为什么不将拆分容器完全放在滚动的东西中,而不是将滚动条的东西放在拆分容器中?这样,它们自然会共享相同的滚动条,并且拆分容器可以根据需要设置宽度以适合整个表单。