6

我正在开发 winfom 应用程序 c#。我有两种形式,称为WelomeDetails。详细信息在面板中包含 7 个网格。

场景: 如果我单击欢迎页面上的任何项目,它将进入包含七个网格的详细信息页面。如果我向下拖动滚动条,并在回到欢迎表单后返回,滚动条仍然保持在同一位置。

问题: 我想在每次用户访问详细信息表单时将滚动位置重置为顶部,以便我始终可以看到第一个网格。

4

4 回答 4

22

设置AutoScrolltrue

panel1.AutoScroll = true;

然后,在详细信息表单的load事件中,设置VerticalScroll

panel1.VerticalScroll.Value = 0;
于 2012-06-14T10:08:17.767 回答
2

如果 Angshuman Agarwal 的答案对您不起作用,那么罪魁祸首可能是在加载表单中的某些控件后接收焦点,这将滚动到视图中并覆盖对滚动位置的任何更改。

可以设置TabStop为 false,但随后您的表单将无法选项卡:(

一个笨重但仍然相对简单的解决方法是手动将焦点放在表单中的第一个控件上:

yourFirstControl1.Select();

另请参阅如何使面板滚动条在加载表单时位于顶部位置

于 2019-11-26T17:45:06.223 回答
1

旧帖子,但仍然相关。以上仅在我添加一行时才有效:

displayPanel.AutoScroll = true;
displayPanel.AutoScrollPosition = new Point(displayPanel.AutoScrollPosition.X, 0);
displayPanel.VerticalScroll.Value = 0;

然后它工作得很好,无需设置任何标签索引。

于 2020-03-19T13:20:25.463 回答
0

上面提到的很好但是,你应该在 Panel1_Paint 中添加 VerticalScroll.Value

Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint    
Panel1.VerticalScroll.Value = 0
End Sub
于 2020-05-28T01:33:06.817 回答