2009-10-23 4 views
1

Есть ли способ использовать встроенные ScrollBars, которые поставляются с каждым .Net ScrollableControl без установки свойства AutoScroll для включения? Вот проблема, даже если я разрешаю, установите значение Visible и объявит значения min и max, а также smallChange и LargeChange для HorizontalScrollBar и VerticalScrollBar, которые отображаются в границах элемента управления, но они бесполезны. При щелчке большой палец не перемещается, и событие прокрутки элемента управления не приносит никакой полезной информации при щелчке по прокрутке (OldValue и NewValue равны 0) Вот как я попытался установить значения полос прокрутки:Использование ScrollBars в .Net

 HorizontalScroll.Enabled = true; 
     HorizontalScroll.Value = 80; 
     HorizontalScroll.Minimum = 0; 
     HorizontalScroll.Maximum = 300; 
     HorizontalScroll.SmallChange = 2; 
     HorizontalScroll.LargeChange = 4; 
     HorizontalScroll.Visible = true; 

(И сделал то же самое для вертикальной прокрутки)

Любые идеи? или я должен добавить к новым ScrollBars себе контроль?

+0

Содержит ли содержимое видимую форму, которую можно прокрутить? Не устанавливайте начальное значение и не перетащите свое окно, чтобы уменьшить размер видимого изображения, и он может вести себя немного больше, чем вы ожидали. – curtisk

ответ

0

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

public override bool AutoScroll 
     { 
      get { return false; } 
      set 
      { 
       if (value) 
        throw new Exception("Auto Scroll not supported in this control"); 
       base.AutoScroll = false; 
      } 
     }