Как мне вызвать событие MouseDoubleClick? WinForm - PullRequest
0 голосов
/ 04 мая 2010

В моем MouseDoubleClick я могу столкнуться с ситуацией, когда я хотел бы вызвать все элементы управления в списке с помощью MouseDoubleClick. Однако я не могу вызвать MouseDoubleClick, только добавлять / удалять события в цепочке.

Как мне вызвать MouseDoubleClick / OnMouseDoubleClick?

ATM. Я обошел проблему, так как знаю функцию MouseDoubleClick объектов и передаю параметры сам, вызывая эту конкретную функцию. Как вызвать событие в случае, если я не знаю, какая функция установлена ​​для элемента управления MouseDoubleClick

Ответы [ 2 ]

0 голосов
/ 31 мая 2010

Я обошел проблему, так как знаю функцию MouseDoubleClick объектов и передаю параметры сам, вызывая эту конкретную функцию. Как вызвать событие в случае, если я не знаю, какая функция установлена ​​для элемента управления MouseDoubleClick

0 голосов
/ 04 мая 2010

Есть несколько способов сделать это:

  • Как вы делаете, жестко закодировать вызовы напрямую. Не очень гибкий подход.

  • Добавьте собственный внутренний метод для вызова в элементах управления (например, реализуйте специальный интерфейс) или событие, которое вы вызываете, на которое подписываются все другие заинтересованные элементы управления. Это работает, только если у вас есть исходный код для всех элементов управления или вы создали собственные производные пользовательские элементы управления, что может потребовать много работы.

  • Отправьте сообщение WM_LBUTTONDBLCLICK в основное окно для каждого элемента управления в вашем списке. Это должно работать для любого вида контроля, если они не делают ничего плохого в своих обработчиках. Обратите внимание, что вам, возможно, понадобится определить поддельные координаты x, y внутри каждого элемента управления, чтобы обмануть его, думая, что двойной щелчок находится внутри его собственных границ - двойной щелчок вне границ элемента управления может вызвать неопределенное поведение. И, конечно же, местоположение щелчка внутри элемента управления может быть важным (например, вы можете дважды щелкнуть отдельные элементы, отображаемые в элементе управления списком)

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