我在winforms中有一个面板,在其中我加载了一些用户控件。
每次添加新的usercontrol时,我都想自动滚动到面板的底部(当我的面板填充时)。我怎么能这样做?
答案 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);
首先,我滚动到顶部以便为文本框使用绝对垂直位置,然后放置文本框,最后,我确保新创建的文本框进入视图。