在 windows 之间切换时面板自动滚动关闭

panel autoscroll turns off when switching between windows

我创建了一个界面,它有多种形式,您可以使用面板作为父形式在它们之间切换。我的问题是,当我第二次在我的表单之间切换时,我打开一个表单,如果该表单在面板上具有自动滚动功能,它将不允许您滚动,并且 window 卡在您之前的视图中。

在这张图片中,我打开了互联网表格。这样做之后我会点击指令(任何形式的开关都会触发这个)

现在我再次打开同一个表单,滚动条消失了,它锁定在表单所在的最后位置。

非常奇怪的是,这只发生在 Internet 上,表单 word 也有一个滚动条,但是即使两者的属性和设置相同,只有一个不起作用。 可能是什么原因造成的,我该如何解决此类错误。

表格已从面板中删除并且re-added,它们没有关闭。

假设 0:

The forms are removed from the panel and re-added, they are not closed.

保存面板自动滚动状态,重新添加后设置。请注意,如果您首先向面板添加控件并且面板未停靠,则不会出现滚动,因为面板尺寸可能很大。您还应该设置以下 属性:

vScrollBar1.Vericalscroll.Value = 0

假设 1:

我假设实际发生的事情是您没有向该面板添加控件,而是向其后面的表单或类似的东西添加控件。在那种情况下 - 程序是正确的,你只是要求它做错事。

假设 2:

假设面板锚定在顶部、左侧、底部、右侧。当前 Windows 表单中存在一个限制,当同时启用 RightToLeft 且 AutoScroll 设置为 True 时,阻止从 ScrollableControl 派生的所有 类 正常运行。

手动:link

假设 3:

您通过重新创建控件来添加控件,但忘记添加处理程序或按滚动条不在视图中的顺序创建它们。您可以使用 dockstyle:

而不是绝对位置
Dim vScrollBar1 As VScrollBar = New VScrollBar
vScrollBar1.Dock = DockStyle.Right
Controls.Add(vScrollBar1)