Лучший способ показать / скрыть всплывающее окно при наведении - PullRequest
2 голосов
/ 26 ноября 2008

У меня есть элемент управления календаря, полученный из DataGridView. Событие при наведении пользовательского элемента уже на месте. При обработке события у меня есть элемент, который был наведен и местоположение мыши. Как лучше всего показать всплывающее окно с подробной информацией об элементе? Должен ли я использовать урезанную форму (без заголовка, панели управления и т. Д.) И просто закрыть ее на MouseLeave? Есть ли лучший способ?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 26 ноября 2008

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

Предварительно создайте элемент управления или форму в главной форме, затем, когда мышь наведет курсор на нужный элемент управления, сделайте элемент управления «поп» видимым, а когда мышь уйдет, сделайте его невидимым.

Просто следите за событиями мыши, хотя они могут быть захвачены новым всплывающим элементом управления. Это может потребовать небольшой гимнастики позиционирования, так как вам придется сместить позицию так, чтобы курсор никогда не попадал при наведении всплывающего элемента управления.

Пример использования всплывающей подсказки Microsoft Windows.

0 голосов
/ 26 ноября 2008

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

0 голосов
/ 26 ноября 2008

Я использую Thickbox (плагин JQuery) для всплывающих окон, как это. Он позволяет использовать различные методы для отображения данных (ajax, iFrame), вы также можете настроить обратные вызовы из всплывающего окна на случай, если вам нужно захватить данные. Если вы хотите узнать, как я использовал его недавно, вы можете нажать на любую из демонстрационных ссылок на этой странице:

http://www.prolifiq.net/Corporate/inaction.aspx

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