C# 滚动条到达面板底部时触发事件
我有一个winform应用程序,我希望在滚动条到达面板底部时触发一个事件 我试过这个: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) {
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");
}