|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
ContextMenu (не стрип) А как сделать чтоб итемы в меню нажимались только левой кнопкой мыши? Или это мода сейчас такая - и левой и правой? Может я туплю, в разных программах по разному, но я хочу чтоб только левой. Опять через API лечить? И сюда же вопрос. Код: vbnet 1.
Я например хочу чтоб контекстное меню выводилось только там где есть итемы-сабитемы, а на "белом поле" не выводилось. Через popup (подменю MainMenu) этот вопрос решается на этапе MouseUp через HitTest. А здесь как? Да, еще. Оно куда Msg-ы шлет? Я так понял в тот контрол, для кот. является контекстным. Сабклассинг ListView1 показывает что вроде так. Так? Чет у меня нет уверенности что Context дает какие-то удобства по сравнению с popup(подменю MainMenu) -как в VB6 ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 04:22 |
|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
Дмитрий77как сделать чтоб итемы в меню нажимались только левой кнопкой мыши? Или это мода сейчас такая - и левой и правой? Может я туплю, в разных программах по разному, но я хочу чтоб только левой. Не надо чинить, то что не сломано. Оставь поведение по умолчанию. Дмитрий77Я например хочу чтоб контекстное меню выводилось только там где есть итемы-сабитемы, а на "белом поле" не выводилось. Через popup (подменю MainMenu) этот вопрос решается на этапе MouseUp через HitTest. А здесь как? Замени ContextMenu на ContextMenuStrip. Там есть событие Opening. В нем и делаешь проверяешь с помощью HitTest или GetItemAt Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 05:12 |
|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
bazile, Мне всегда казалось что по умолчанию это когда на правую кнопку мыши не реагирует. Сейчас я засомневался. У Microsoft в части приложений только левой, а в части - обеими. >Замени ContextMenu на ContextMenuStrip. Мне стрип не нужен. Это по другому делается. 14857362 Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9.
Я хочу сказать что в main menu "только левой". А выводить submenu от main в качестве context через popup -это стандартный прием. И тогда будет "только левой". Счас пытаюсь найти от чего это зависит (в "настоящих" документациях): Menus Но что-то не нашел пока. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 05:55 |
|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
Дмитрий77, если сделать что то подобное помодет? Код: c# 1. 2. 3. 4. 5.
сорри, но VB не владею ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 05:58 |
|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
А, вот и ответ нашелся (кажется): TrackPopupMenu function TrackPopupMenuuFlags [in] Type: UINT Use zero of more of these flags to specify function options. Use one of the following flags to specify which mouse button the shortcut menu tracks. Value Meaning TPM_LEFTBUTTON 0x0000L The user can select menu items with only the left mouse button . TPM_RIGHTBUTTON 0x0002L The user can select menu items with both the left and right mouse buttons. Вопрос только как это увязать с Net-реализацией ContextMenu. Возможно никак, потому что это не стиль, а параметр ф-ции. Если только... не забить на вот это Код: vbnet 1.
и не использовать ф-цию в лоб. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 06:06 |
|
Элемент ContextMenu (не стрип) - а почему итемы нажимаются правой кнопкой мыши?
|
|||
---|---|---|---|
#18+
Вот оно, ДЕФОЛТНОЕ поведение (uFlags=0), даже никаких констант не понадобилось. "Только левая кнопка". А правая в этом случае генерирует WM_MENURBUTTONUP вместо WM_COMMAND. Это все фантазии .Net -художников -забабахать &H2 и не оставить пользователю возможности маневра. Я вообще не понимаю удобство этого Context. Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
Проверяйте. Дмитрий77Я например хочу чтоб контекстное меню выводилось только там где есть итемы-сабитемы, а на "белом поле" не выводилось. Через popup (подменю MainMenu) этот вопрос решается на этапе MouseUp через HitTest.Соответственно решается проверкой в ListView1_MouseUp перед вызовом TrackPopupMenu ... |
|||
:
Нравится:
Не нравится:
|
|||
18.10.2013, 06:38 |
|
|
start [/forum/topic.php?fid=20&fpage=143&tid=1403849]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
13ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
others: | 328ms |
total: | 477ms |
0 / 0 |