【发布时间】:2021-08-28 11:03:31
【问题描述】:
我的 winforms 中有一个面板,我在其中加载了一些用户控件。
我想在每次添加新的用户控件时自动滚动到面板底部(当我的面板填充时)。我该怎么做?
【问题讨论】:
我的 winforms 中有一个面板,我在其中加载了一些用户控件。
我想在每次添加新的用户控件时自动滚动到面板底部(当我的面板填充时)。我该怎么做?
【问题讨论】:
您可以通过设置面板的VerticalScroll 来做到这一点,但我认为改用ScrollControlIntoView 会更好。
private void panel1_ControlAdded(object sender, ControlEventArgs e)
{
panel1.ScrollControlIntoView(e.Control);
}
祝你好运!
【讨论】:
您可以使用ScrollControlIntoView 并传递您上次添加的控件。
另一种解决方案是:
panel.VerticalScroll.Value = panel.VerticalScroll.Maximum
【讨论】:
我发现每当用户向上或向下滚动面板时,以垂直增量连续向面板添加控件会受到负面影响。我使用了上面 Homam 的提示,发现以下方法效果很好:
panel1.VerticalScroll.Value = 0;
// Creating and adding a TextBox, tb, to the panel
panel1.ScrollControlIntoView(tb);
首先,我滚动到顶部以便为我的文本框使用绝对垂直位置,然后我放置文本框,最后,我确保新创建的文本框出现在视图中。
【讨论】: