Могу ли я получить события непосредственно из HScrollBar в .net? - PullRequest
1 голос
/ 09 ноября 2011

У меня странное требование.Наши данные имеют галочки, которые связаны со временем.Каждый тик может содержать от 0 до 50 точек данных.Я хочу, чтобы галочки были расположены на полосе прокрутки, поэтому, если вы перетаскиваете ручку, вы прокручиваете галочки.Но я хочу, чтобы стрелки менялись между точками данных, так что если вы используете одну из стрелок для перехода, вы увидите каждую точку данных.

Могу ли я получить события непосредственно изHScrollBar, чтобы я знал, нажал ли пользователь стрелку или перетащил ручку?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Вы действительно можете использовать HScrollBar и VScrollBar напрямую, хотя это не дает вам позиции так, как вы говорите, что хотите их. Вы можете установить количество пространства, которое он перемещает, когда пользователь нажимает стрелку (это будет SmallIncrement и SmallDecrement) и когда пользователь нажимает в области прокрутки (LargeIncrement и LargeDecrement). Но вы не можете установить количество пространства, которое он перемещает, когда пользователь перетаскивает большой палец.

Вы можете переместить позицию прокрутки, когда пользователь прекращает перетаскивать (округляя результирующую позицию), но это может сбить пользователя с толку. Посмотрите на событие HScrollBar.Scroll и свойство ScrollEventArgs.Type.

Вероятно, лучше использовать TrackBar и добавить кнопки со стрелками влево и вправо к вашему интерфейсу. Заставить HScrollBar работать так, как вы хотите, будет сложно, и, вероятно, он не будет выглядеть так же хорошо, как TrackBar.

1 голос
/ 09 ноября 2011

ScrollBar не предназначен для этого.С одной стороны, диапазон основан на минимуме и максимуме, а затем смещен на значение LargeChange.Другими словами, полоса прокрутки не прокручивается от минимума до максимума (как это делается в VB6).

Попробуйте вместо этого использовать элемент управления TrackBar.Вы не получаете стрелы, просто ручку, но она дает вам почти все, что вы ищете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...