Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Вниз

Отключить скрол у TComboBox   Найти похожие ветки 

 
bss   (2010-06-01 15:59) [0]

У ComboBox"а есть раздражающее многих поведение - если фокус остался на компоненте, то он крутится по колесику мыши. Зачастую бывает - выбрал что-то в ComboBox"е, потом перевел курсор на тот же Grid (кликнуть и переправить фокус забыл) и начинаешь крутить колесо - а крутятся данные в ComboBox"е.

Как бы красиво отрубить ему этот функционал. Желательно так, чтобы когда курсор мыши был на ComboBox"е то список крутился, но если курсор ушел с ComboBox"а то уже нет.

А вообще самое идеальное - это позволить менять значение в ComboBox"е только сначала вызвав список и там уже выбрав значение, чтобы в схлопнутом состоянии не прокручивалось ни стрелочками, ни колесиком. Но тут возникает проблема управления ComboBox"ом с клавиатуры. Не знаю способа, чтобы с клавиатуры раскрыть список...


 
Kerk ©   (2010-06-01 16:01) [1]

ComboBox умеет скроллиться, не имея фокуса?!


 
bss   (2010-06-01 16:02) [2]


> ComboBox умеет скроллиться, не имея фокуса?!

ты неверно прочитал. ComboBox умеет скролится, имея фокус, но при этом курсор мышки не на нем, что порождает ошибки иногда.


 
Leonid Troyanovsky ©   (2010-06-01 16:06) [3]


> bss   (01.06.10 15:59)  

> с клавиатуры раскрыть список...

Alt+Down

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 16:08) [4]


> Leonid Troyanovsky ©   (01.06.10 16:06) [3]

Еще F4, ЕМНИП.


 
Kerk ©   (2010-06-01 16:09) [5]


> bss   (01.06.10 16:02) [2]
>
> > ComboBox умеет скроллиться, не имея фокуса?!
>
> ты неверно прочитал. ComboBox умеет скролится, имея фокус,
>  но при этом курсор мышки не на нем, что порождает ошибки
> иногда.

Теперь понял. Действительно, неприятно бывает.
Может, совсем ему колесо мышки отключить?


 
12 ©   (2010-06-01 16:20) [6]


> Теперь понял. Действительно, неприятно бывает.
> Может, совсем ему колесо мышки отключить?

может проще фокус отдать?


 
Дмитрий Т   (2010-06-01 16:47) [7]

вообще у меня дома и на работе работает по разному.

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

меня тоже бесит, когда колесо фокусированному контролу приходит.

может в настройках покопаться? или драйвера поставить, а не штатные от Винды брать. в спец. драйверах должна быть навернутая настройка (видимо).


 
turbouser ©   (2010-06-01 16:59) [8]


> Дмитрий Т   (01.06.10 16:47) [7]
>
> вообще у меня дома и на работе работает по разному.

Наверное, дома комфортнее, от этого события от мышки приходят спокойнее и не так часто


 
Дмитрий Т   (2010-06-01 17:13) [9]

Не веришь?
Действительно разница есть.

Особо удобно крутить страницы и GUI - где мышь, там и крутится.
Видимо, драйвер так работает.


 
>_   (2010-06-01 17:13) [10]

При событии OnMouseWheel комбобокса проверять, открыт ли он, если нет - глушить. Не?


 
12 ©   (2010-06-01 17:28) [11]


> При событии OnMouseWheel комбобокса проверять, открыт ли
> он, если нет -

снимать с него фокус


 
bss   (2010-06-01 17:49) [12]


> Alt+Down


> Еще F4, ЕМНИП.

спасибо!


> Действительно разница есть.

разница есть, это правда. Видимо, действительно зависит от драйвера мыши.


> При событии OnMouseWheel комбобокса проверять, открыт ли
> он, если нет - глушить. Не?

ну если чО - у него нет такого события ))


 
Leonid Troyanovsky ©   (2010-06-01 18:20) [13]


> bss   (01.06.10 15:59)  

> Как бы красиво отрубить ему этот функционал.

ComboBox.Perform(CB_SETEXTENDEDUI, 1, 0);

Ну, и останется только стрелка вниз.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:22) [14]


> bss   (01.06.10 17:49) [12]

> от драйвера мыши.

Некоторые драйвера могли (могут?) генерировать
вместо событий колеса те же стрелки.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:23) [15]


> bss   (01.06.10 17:49) [12]

> ну если чО - у него нет такого события ))

Оно есть, в protected.

--
Regards, LVT.


 
Leonid Troyanovsky ©   (2010-06-01 18:44) [16]


> 12 ©   (01.06.10 17:28) [11]

> снимать с него фокус

Прерогатива юзера.

--
Regards, LVT.


 
Игорь Шевченко ©   (2010-06-02 13:18) [17]


> потом перевел курсор на тот же Grid (кликнуть и переправить
> фокус забыл) и начинаешь крутить колесо - а крутятся данные
> в ComboBox"е


а ты ждешь, что грид поймет, что ты на него перевел курсор и начнет прокручиваться по колесу ?


 
bss   (2010-06-02 14:10) [18]


> а ты ждешь, что грид поймет

этого жду не я, этого ждут пользователи. И ладно если грид не начинает прокручиваться - человек соображает, что не перевел фокус, кликает и начинает опять прокручивать. Плохо то, что к тому времени может уже прокрутиться combobox на непонятное значение. И это, кстати, легко не заметить. Я сам такое натыкался в том же браузере при заполнении формы.


 
Игорь Шевченко ©   (2010-06-02 14:18) [19]

bss   (02.06.10 14:10) [18]


> этого жду не я, этого ждут пользователи


Если этого ждут пользователи твоей программы, перехватывай фокус автоматом при появлении курсора над нужным контролом (правда, ComboBox захватывает мышь, но только при открытом списке)


 
bss   (2010-06-02 14:43) [20]

зачем? Я не считаю это правильным. Также я считаю неправильным, что combobox крутится, когда курсор не над ним.


 
Leonid Troyanovsky ©   (2010-06-02 14:44) [21]


> bss   (02.06.10 14:10) [18]

> этого жду не я

Чем [13] не угодил?

--
Regards, LVT.


 
bss   (2010-06-02 14:57) [22]


> Чем [13] не угодил?

почему не угодил, очень даже угодил. И за F4, Alt+Вниз спасибо, я все запомнил, записал )) Просто в результате немного сделал по-другому, свел список ComboBox к двум значениям и тут уже заменил просто на CheckBox.


 
Омлет ©   (2010-06-02 15:10) [23]

В Опере и FF последних версий от этой недофичи избавились, за что им спасибо. А то в некоторых веб-формах думаешь, что скроллишь страницу, а прокручивается селект, что еще и вызывает долгое обновление всей формы под новые выбранные параметры.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2010.08.27;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.5 MB
Время: 0.068 c
2-1267982007
NBAH1990
2010-03-07 20:13
2010.08.27
Ошибка при передачи данных по TCP протоколу


8-1202991381
Jimmy
2008-02-14 15:16
2010.08.27
Сохранение в psd


15-1270727360
ElenKa
2010-04-08 15:49
2010.08.27
Мастер формул


2-1272286875
Вик
2010-04-26 17:01
2010.08.27
Invalid floating point operation


2-1273664604
Дмитро
2010-05-12 15:43
2010.08.27
delphi





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский