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

C# 滚动条到达面板底部时触发事件,c#,winforms,events,scrollbar,panel,C#,Winforms,Events,Scrollbar,Panel,我有一个winform应用程序,我希望在滚动条到达面板底部时触发一个事件 我试过这个: private void Panel1_Scroll(object sender, ScrollEventArgs e) { //some operation } 但它是每次滚动滚动条时触发的事件,而不是当我到达终点时 如何实现这一点?检查属性。像这样: private void panel1_Scroll(object sender, ScrollEventArgs e) {

我有一个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
                }
            }
        }
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
       }
    }
}
相似的;您是否尝试使用ScrollEventArgs的NewValue属性?您可以使用e.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");
        }