滚动条到达面板底部时触发事件

Firing event when scroll bar reaches the bottom of panel

我有一个 winform 应用程序,我希望在滚动条到达面板底部时触发一个事件。

我试过这个:

private void Panel1_Scroll(object sender, ScrollEventArgs e)
{
//some operation
}

但是每次我滚动滚动条时它都会触发事件,而不是当我到达终点时。

如何实现?

private void panel1_Scroll(object sender, ScrollEventArgs e)
        {
            if(e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
            {
                if(panel1.HorizontalScroll.Value == panel1.HorizontalScroll.Maximum)
                {
                    //end
                }
            }
            else
            {
                if (panel1.VerticalScroll.Value == panel1.VerticalScroll.Maximum)
                {
                    //end
                }
            }
        }
if (e.ScrollOrientation == ScrollOrientation.VerticalScroll)
{
    VScrollProperties vs = panel2.VerticalScroll;
    if (e.NewValue == vs.Maximum - vs.LargeChange+1)
    {
        //Do your stuff
    }
}

勾选ScrollEventArgs.NewValue属性。像这样:

private void Panel1_Scroll(object sender, ScrollEventArgs e)
{
    if (e.NewValue == panel1.VerticalScroll.Maximum - panel1.VerticalScroll.LargeChange + 1)
    {
       if(e.NewValue != e.OldValue) // Checking when the scrollbar is at bottom and user clicks/scrolls the scrollbar      
       {
           MessageBox.Show("Test"); // Some operation
       }
    }
}
            if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
        {
            if (e.NewValue + panel1.Width > panel1.HorizontalScroll.Maximum)
                MessageBox.Show("End of Horizontal Scroll");
        }
        else
        {
            if (e.NewValue + panel1.Height > panel1.VerticalScroll.Maximum)
                MessageBox.Show("End of Vertical Scroll");
        }