我创建了一个界面,它有几种形式,您可以使用面板作为父窗体进行切换。我的问题是,当我第二次在我的表单之间切换时,如果该表单在面板上进行了自动滚动,那么我将打开一个表单,它将不允许您滚动,并且窗口卡在您以前的视图上。
在此图片中,我打开互联网表格。在这样做后,我将点击指令(任何表格开关触发这个)
现在我再次打开相同的表单,滚动条消失了,它锁定了表单所在的最后位置。
这是非常奇怪的事情,这只发生在互联网上形式的单词也有一个滚动条,但即使两者的属性和设置相同,只有一个不起作用。 可能导致此问题的原因以及如何解决此类错误。
表单将从面板中删除并重新添加,但不会关闭。
答案 0 :(得分:0)
表格从面板上移除并重新添加,但不是 闭合。
存储面板自动滚动的状态,并在重新添加后进行设置。请注意,如果首先向面板添加控件而面板未停靠,则不会显示滚动,因为面板尺寸可能很大。您还应该设置以下属性:
vScrollBar1.Vericalscroll.Value = 0
我认为实际发生的事情是你没有向该面板添加控件,而是添加到它后面的表单或类似的东西。在那种情况下 - 程序是正确的,你只是要求它做错了。
假设面板是顶部,左侧,底部,右侧。目前,Windows窗体中存在一个限制,即当启用RightToLeft并将AutoScroll设置为True时,阻止从ScrollableControl派生的所有类都能正常运行。
手动:link
您可以通过重新创建控件来添加控件,但忘记添加处理程序或按顺序创建它们以使滚动条不在视图范围内。您可以使用dockstyle:
而不是绝对位置Dim vScrollBar1 As VScrollBar = New VScrollBar
vScrollBar1.Dock = DockStyle.Right
Controls.Add(vScrollBar1)