2015-12-15 2 views
4

У меня есть приложение winform, где я хочу, чтобы событие было запущено, когда полоса прокрутки дошла до нижней панели.Увольнение, когда полоса прокрутки достигает нижней части панели

Я попытался это:

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

Но стреляет каждый раз событие я прокручивать полосы прокрутки не тогда, когда я добираюсь до конца.

Как достичь этого?

+3

похожи; http://stackoverflow.com/questions/19682312/how-to-detect-if-winforms-panel-has-scrolled-to-the-end – yjs

+0

Вы пытались использовать свойство ** NewValue ** для ** ScrollEventArgs **? Вы можете получить значение полосы прокрутки с помощью ** e.NewValue ** –

ответ

3

Проверить 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 
     } 
    } 
} 
0
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 
       } 
      } 
     } 
2
if (e.ScrollOrientation == ScrollOrientation.VerticalScroll) 
{ 
    VScrollProperties vs = panel2.VerticalScroll; 
    if (e.NewValue == vs.Maximum - vs.LargeChange+1) 
    { 
     //Do your stuff 
    } 
} 
0
  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"); 
     } 
Смежные вопросы