自动滚动面板到底部

时间:2011-03-31 13:23:44

标签: c# .net winforms

我在winforms中有一个面板,在其中我加载了一些用户控件。

每次添加新的usercontrol时,我都想自动滚动到面板的底部(当我的面板填充时)。我怎么能这样做?

3 个答案:

答案 0 :(得分:20)

您可以通过设置面板的VerticalScroll来实现这一点,但我认为最好使用ScrollControlIntoView

private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
    panel1.ScrollControlIntoView(e.Control);
}
祝你好运!

答案 1 :(得分:19)

您可以使用ScrollControlIntoView并传递上次添加的控件。

另一种解决方案是:

panel.VerticalScroll.Value = panel.VerticalScroll.Maximum

答案 2 :(得分:0)

我发现,当用户向上或向下滚动面板时,以垂直增量不断向面板添加控件会受到负面影响。我使用了上面Homam的提示,发现以下内容效果很好:

panel1.VerticalScroll.Value = 0;

// Creating and adding a TextBox, tb, to the panel

panel1.ScrollControlIntoView(tb);

首先,我滚动到顶部以便为文本框使用绝对垂直位置,然后放置文本框,最后,我确保新创建的文本框进入视图。