Выезжающая панель
Делаю элемент пользовательского интерфейса - выезжающая панель. Нужно чтобы при наведении мыши она выезжала, а при отсутствии заезжала назад. На панели располагаются другие контролы. Проблема в том, что использовать стандартные ивенты mouseHover и mouseLeave нельзя. Так как, если указатель мыши попадает на контрол, находящийся на панели, то срабатывает событие mouseLeave для панели. Поэтому это событие нельзя использовать для закрытия панели. Как реализовать для такой панели механизм открытия и закрытия при наведении мыши.
Вызывай одну и туже функцию по mouseHover и mouseLeave для всех контролов на панели и сайой панели.
Цитата: alex-kniaz
Вызывай одну и туже функцию по mouseHover и mouseLeave для всех контролов на панели и сайой панели.
Мне кажется не самое лучшее решение. Я подошел с другой стороны. Контролов на панели обычно много, а вот панелей на форме не много. Поэтому проще переопределить метод Form_MouseEnter и в нем вызвать что-то типа Panel1.ClosePanel(). Там правда еще есть один нюанс при работе с мышью. Надо повторно переправерять координаты мыши (находится ли еще курсор над панелью или нет), предварительно Update-ив форму, чтобы панел корректно закрылась. Но это уже наверно тонкости самого алгоритма заезда/выезда панели.