2008-11-04 3 views
16

Я хочу использовать ту же функциональность, что и при панели Panel.AutoScroll, но с невидимыми полосами прокрутки.Как прокручивать панель вручную?

Для этого мне нужно знать, как прокручивать влево/вправо вверх/вниз с помощью функций в моем коде.

ответ

13

Вы должны быть в состоянии использовать свойства VerticalScroll и HorizontalScroll компонента:

c.HorizontalScroll.Value += 100; 
c.VerticalScroll.Value = c.VerticalScroll.Maximum; 
+0

Он работает только тогда, когда AutoScroll = true, но тогда я не могу скрыть HorizontalScroll/VerticalScroll. Установка Scroll.Visible = false не скрывает прокрутку) – Jonas 2008-11-21 17:00:25

+0

Обратите внимание на всех, кто хочет скрыть полосу прокрутки, такую ​​как OP: не пробуйте. – 2012-04-12 13:38:08

+4

Из-за странной ошибки, которую я обнаружил, вам лучше использовать `var v = ScrollingPanel.VerticalScroll; v.Value = v.Value = Math.Min (v.Maximum, v.Value + v.LargeChange); `или полосы прокрутки на самом деле не будут двигаться, когда панель будет работать. По какой-то причине значение изменяется обратно до того, как оно нарисовало полосу прокрутки, но второй раз обновит ее. – Patrick 2012-07-17 16:21:28

-3

Там, наверное, свойство на панели, чтобы сделать это, в качестве альтернативы вы можете перебрать все панели детей и корректировать свои позиции ,

Например. для перемещения всех элементов управления, 10 точек:

int xoffset = 10; 

foreach(Control c in panel1.Controls) 
    c.Location.X += xoffset; 

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

10

Хорошо, если вы не хотите использовать свойство Autoscroll, есть способ, которым я пользовался давно.

  • Положить панель внутри панели. Поместите элемент управления полосой прокрутки на родительскую панель, а затем используйте полосу прокрутки, чтобы изменить свойство Top внутри панели.

Это просто и прекрасно работает.

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