Выноска всплывающей подсказки исчезает через 5 секунд

У меня свойство «AutoPopDelay» установлено на 60000, но каждый раз, когда я навожу курсор на связанный элемент, всплывающее окно остается открытым только в течение 5 секунд, даже когда указатель мыши остается неподвижным над элементом.

Любые идеи о том, что может быть причиной этого?

Изменить: я использую WinForms


person sooprise    schedule 11.10.2010    source источник
comment
Можете ли вы опубликовать код, демонстрирующий эту проблему.   -  person ChrisF    schedule 11.10.2010


Ответы (2)


Чтение документации по AutoPopDelay в MSDN (ссылка) максимальное время задержки всплывающего окна составляет 5000 миллисекунд.

Если вы хотите увеличить продолжительность, используйте метод Show для управления точным моментом отображения всплывающей подсказки.

...

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

person Dennis    schedule 11.10.2010
comment
Документация не точная. - person Hans Passant; 11.10.2010
comment
@HansPassant: я думал, что это так, поскольку ранее я устанавливал задержку более 5 секунд. В настоящее время я проверяю Reflector, чтобы увидеть фактическое поведение - я обновлю свой ответ. - person Dennis; 11.10.2010
comment
Не беспокойтесь, это поведение встроено в код Windows. С Рефлектором этого не видно. - person Hans Passant; 11.10.2010
comment
@HansPassant: А, хорошо. Дальше копать не буду. Спасибо. ... Независимо от точности документации MSDN, я считаю, что попытка заставить всплывающую подсказку оставаться открытой так долго является реальной проблемой, и следует найти альтернативное решение. - person Dennis; 11.10.2010
comment
Я использую: label1.Show(hi,this,60000); на MouseHover даже на label1, и я не вижу всплывающее окно при наведении курсора. Можете ли вы определить, что я делаю неправильно? - person sooprise; 11.10.2010

Немного поигравшись с управлением всплывающей подсказкой, кажется, что вы можете установить для AutoPopDelay любое значение до 32767, что угодно выше этого, и по умолчанию оно вернется к 5000. Я предполагаю, что в фоновом режиме используется короткое значение, а не целое.

person hrh    schedule 26.10.2012