2011-03-03 2 views
1

У меня есть форма с простым списком. Список содержит Full-docked, а FormBorderStyle формы - None.MouseLeave не стреляет, если у WinForm есть только одна полносвязная ListBox

Когда я прикрепляю событие MouseLeave к форме, оно не срабатывает. (Он также не срабатывает MouseMove, MouseHover и т. Д.)

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

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

Thanks

+0

Можете ли вы просто прикрепить события к списку? – Blorgbeard

+0

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

+0

Итак, в WinForms нет пузырей событий. Это верно? –

ответ

1

Он не должен стрелять, потому что ваша мышь не входила в форму, она входит в список. Поэтому вы должны использовать событие MouseLeave в элементе управления списком

+0

Причина, по которой я не добавил событие в список, состоит в том, что в какой-то момент он может не быть списком. Я просто сохраню ссылку на элемент управления (который заполняет форму) на закрытую переменную формы и присоединяет/отделяет события к этому. Спасибо, в любом случае. –

0

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