如何检测WinForms Panel是否滚动到末尾?

Ais*_*iva 1 c# user-controls scroll panel winforms

我正在开发一个WinForms应用程序,其中有一个包含一些用户控件的面板。面板首次加载时,它将显示10个用户控件。但是,当它完全向下滚动时,它应该加载并在面板末尾附加更多用户控件。我正在尝试使用以下代码实现这一目标:

private void topicContainer_Scroll(object sender, ScrollEventArgs e)
{
      if (e.NewValue== topicContainer.VerticalScroll.Value)
                MessageBox.Show("Topics load here");
}
Run Code Online (Sandbox Code Playgroud)

它只是一个审判。我不知道这个NewValue实际上意味着什么。那么,能否请您告诉我如何完成此任务?

Lar*_*ech 5

正如其他人提到的那样,滚动条永远不会达到其最大值,这是由于LargeChange属性已纳入方程式中:

private void topicContainer_Scroll(object sender, ScrollEventArgs e)
{
  VScrollProperties vs = topicContainer.VerticalScroll;
  if (e.NewValue == vs.Maximum - vs.LargeChange + 1) {
    // scrolled to the bottom
  }
}
Run Code Online (Sandbox Code Playgroud)

+ 1对于从零开始的偏移量。如果将AutoScrollMinSize height属性设置为500,则最大值实际上是499。