Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Проблемка с событием щелчка мышки


Автор: Alek86 22.8.2007, 18:38
допустим, требуется написать контрол MyCtrl, в котором содержится, допустим, Label

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

в винде приходилось PreTranslateMessage использовать. Может, здесь есть что получше? или, если нет, то какой здесь аналог PreTranslateMessage?

Автор: 1stain 23.8.2007, 17:47
http://www.gotdotnet.ru/DotNet/FAQ/WindowsForms/Misc/138424.aspx

Автор: Alek86 23.8.2007, 18:13
спасибо smile
не совсем уверен, что это то самое, но за старание спасибо

Автор: tdebugger 25.8.2007, 22:16
 Перехватывать сообщения вообще не очень хорошая идея, я думаю, что в .NET более грамотно будет создать у Label обработчик щелчка мыши и добавить такую строку:

base.OnClick(e);

Автор: Zapozidon 26.8.2007, 06:29
Цитата(tdebugger @ 25.8.2007,  22:16)
base.OnClick(e);

Может не base, а this? smile

Автор: tdebugger 26.8.2007, 08:51
Если правильно понял вопрос по теме, то base.

Автор: 1stain 27.8.2007, 10:52
Цитата(tdebugger @  25.8.2007,  22:16 Найти цитируемый пост)
 Перехватывать сообщения вообще не очень хорошая идея, я думаю, что в .NET более грамотно будет создать у Label обработчик щелчка мыши и добавить такую строку:base.OnClick(e);


а если аффтар захочет обрабатывать щелчок правой/средней кнопкой, MouseMove, MouseHover, прикажете для каждого события мыши писать обработчик, передающий сообщение своему parent'y?
Предложенное решение представляет собой простой и безгеморройный способ сделать надписи на юзерконтроле прозрачными для событий мыши.

Автор: tdebugger 27.8.2007, 13:46
Согласен, что простой, но безгеморройный и грамотный - это разные вещи...

Автор: Alek86 28.8.2007, 18:47
хороший метод.
еще вопрос - может кто в курсе

является ли его применение уходом от кроссплатформенности?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)