在winform应用程序c#中重置面板滚动位置

时间:2012-06-14 09:09:28

标签: c# winforms

我正在使用winfom应用程序c#。 我有两个名为WelomeDetails的表单。 细节包含面板中的7个网格。

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

问题: 我希望每次用户访问详细信息表单时将滚动位置重置为顶部,这样我总能看到第一个网格。

4 个答案:

答案 0 :(得分:17)

设置panel1.AutoScroll = true;

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

panel1.VerticalScroll.Value = 0;

答案 1 :(得分:0)

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

可以TabStop设置为false,但是您的表单将不可标签:(

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

yourFirstControl1.Select();

另请参见How to make the panel scroll bar to be at the TOP position on loading the form

答案 2 :(得分:0)

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

array:1 [▼
  0 => "dmapi-auth=d0e38a35d83fea420d0bb1e93e2f4b964d0a205b; path=/"
]

然后它很好用,而无需设置任何选项卡索引。

答案 3 :(得分:0)

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

Private Sub Panel1_Paint(sender As Object, e As PaintEventArgs) Handles Panel1.Paint    
Panel1.VerticalScroll.Value = 0
End Sub