2012-05-15 8 views
1

У меня есть панель, которую я хочу прокручивать по горизонтали через код, проблема в том, что она только прокручивается каждый второй раз, когда выполняется строка кода. Это то, что Im использованиемКак прокручивать панель через код?

private void MyScrollButton_Click(object sender, EventArgs e) 
{ 
    MainPanel.HorizontalScroll.Value += 64; 
} 

Это то, что происходит каждый раз,

1st Click: Panel Scrolls and ScrollBar Remains Still 
2nd Click: Panel remains still and ScrollBar scrolls 
3rd Click: Same as 1st 
4th Click: Same as 2nd 

.... ... Repeat

+1

Попробуйте изменить его на '+ = 32' и посмотреть, прокручивается ли он только раз в четыре раза. Это научит нас, что прокрутка фактически выполняется с определенной минимальной разницей, возможно, вокруг 'delta = 100'. – SimpleVar

+0

Я пробовал '+ = 32' и' + = 16'. Он по-прежнему прокручивается раз в 2-й раз – theIrishUser

ответ

4

Попробуйте использовать AutoScrollPosition вместо (и вам нужно для инверсии значения):

private void MyScrollButton_Click(object sender, EventArgs e) { 
    MainPanel.AutoScrollPosition = new Point(-MainPanel.AutoScrollPosition.X + 64, 
              -MainPanel.AutoScrollPosition.Y); 
} 
+0

Отлично работает благодаря Lars – theIrishUser

Смежные вопросы