Как сделать автопрокрутку в С#

Как вы автоматически прокручиваете полосу прокрутки в С# (и не постоянно)?

Например, когда я обновляю что-то в объекте, которому назначена полоса прокрутки, я хочу, чтобы он автоматически прокручивался до крайней правой стороны.

Я старался:

pnlGraph.HorizontalScroll.Value = pnlGraph.HorizontalScroll.Maximum;

но он становится постоянным до максимального значения.

Есть ответы на это?


person libzz    schedule 18.03.2012    source источник
comment
Это не должно быть постоянным. Вы делаете это при нажатии мыши или каком-то другом повторяющемся событии?   -  person dwerner    schedule 18.03.2012
comment
Да, я поместил его в событие рисования (которое я также неоднократно вызывал). Это связано с тем, что размер объекта, которому назначена полоса прокрутки, увеличивается.   -  person libzz    schedule 18.03.2012
comment
Вы используете WinForms? Кстати, прокрутка в winforms (по крайней мере, для некоторых элементов управления) имеет ошибку, когда геттер и сеттер используют разные соглашения о знаках.   -  person CodesInChaos    schedule 18.03.2012
comment
Да, я использую WinForms. Проблема решена. Спасибо хоть. ^_^   -  person libzz    schedule 18.03.2012


Ответы (1)


Не назначайте значение прокрутки в событии рисования. Это гарантирует, что максимальное значение устанавливается каждый раз, когда оно окрашивается, поэтому, как вы говорите, оно остается «постоянным».

person dwerner    schedule 18.03.2012
comment
Это решает мою проблему. Мне стыдно за то, что я не заметил этого. Большое спасибо! ^_^ - person libzz; 18.03.2012
comment
Не забудьте принять и проголосовать за ответы, которые вам подходят! (ИМО оба ответа здесь :)) - person dwerner; 18.03.2012