Listbox - отследить прокрутку (scroll), или как прикрутить UpDown (Spin) Control
Я сейчас пытаюсь сделать поле ввода, значения в котором можно было бы менять, используя "стрелки", как у UpDown (Spin) или даже DomainUpDown Control. Пока что получилось реализовать это на основе "бесконечного" Listbox. В него при инициализации заносятся нужные значения, скажем, десяток элементов из "вычисляемого" списка, и выбор позиционируется посередине. Если же выбрать элемент ниже/выше текущего выбранного, то список "прокручивается" (строки удаляются/добавляются), и новый выбранный элемент опять позиционируется в середине списка, т.е. сверху и снизу от него получается примерно равное число строк. Если высоту такого списка задать равной высоте одной строки, то вместо scrollbar'а у него появляются кнопки со стрелками - как раз как у Spin Control. Но при этом отсутствует возоможность выбирать значения мышкой, щелкая только по этим кнопкам: прокрутка работает, но выбранным остается старое значение, пока по новому не щелкнешь мышой.
Так вот, как можно отследить, что пользователь прокручивает Listbox? Или как прикрутить к обычному полю ввода (String/Date/RealEdit) Spin Control?
P.S. Если кому интересно, что у меня получилось в плане "бесконечных" списков, могу выложить пример.
|