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

时间:2015-01-05 07:13:10

标签: vb.net winforms

我创建了一个界面,它有几种形式,您可以使用面板作为父窗体进行切换。我的问题是,当我第二次在我的表单之间切换时,如果该表单在面板上进行了自动滚动,那么我将打开一个表单,它将不允许您滚动,并且窗口卡在您以前的视图上。

在此图片中,我打开互联网表格。在这样做后,我将点击指令(任何表格开关触发这个)

enter image description here

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

enter image description here

这是非常奇怪的事情,这只发生在互联网上形式的单词也有一个滚动条,但即使两者的属性和设置相同,只有一个不起作用。 可能导致此问题的原因以及如何解决此类错误。

表单将从面板中删除并重新添加,但不会关闭。

1 个答案:

答案 0 :(得分:0)

假设0:

  

表格从面板上移除并重新添加,但不是   闭合。

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

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)