Наведите курсор мыши на всплывающий список Combobox - PullRequest
2 голосов
/ 19 августа 2011

Когда моя мышь перемещается в конец всплывающего списка Combobox, список автоматически начинает прокручиваться вниз.Но когда я внизу и иду наверх, эффект автопрокрутки отсутствует, поэтому Я хочу отключить это поведение , потому что оно работает только одним способом, вниз ..

Iне удается найти какое-либо свойство, поэтому я пытаюсь получить событие mousemove в этом раскрывающемся списке, чтобы отменить его или сделать его обработанным, но оно вызывается только в самом выпадающем списке, а не в списке.

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

Другая идеябыло найти событие, которое выполняется, когда элементы, отображаемые во всплывающем списке, изменены, и остановить его, когда мышь не взяла полосу прокрутки, или щелкнуть ее, но это также невозможно.События не сработали.есть только выбранное измененное событие, но это триггер при выборе, а не в scrool.

Есть ли какое-либо решение для этого?

1 Ответ

0 голосов
/ 21 августа 2011

Наконец-то я нашел ответ !!!

В моем списке Combobox было около 26 строк, что было очень мало, поэтому я хотел показывать только 7 из них за раз.

Я нашел DropDownHeight свойство и установил его: Свойство ItemHeight было установлено в 13, потому что Font.Size было 8,25 (по умолчанию). 7 * 13 = 91. И установите его.

DropDownHeight = 91 .

И это работает почти идеально, но была проблема с автоскроллингом. (о чем я спрашивал выше)

Наконец я понял, что последняя строка (здесь это NNN) показана не полностью. И когда мышь входит в эту строку, элемент управления ComboBox хочет показать мне всю строку и прокрутить ее вверх.

Я начал менять размер и обнаружил, что линия отображается полностью, когда она установлена ​​на 93 (= 7 * 13 + 2 ). Почему 2? Наверное потому что нижняя и верхняя граница. И теперь нет автопрокрутки ...

enter image description here

Я также обнаружил, что есть еще одна возможность:

ComboBox1.IntegralHeight = False;
ComboBox1.MaxDropDownItems = 7;

И это работает только тогда, когда не было никаких изменений в DropDownHeight, значение по умолчанию в моем случае было 106 (= 8 * 13 + 2), поскольку значение по умолчанию MaxDropDownItems равно 8.

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