Посмотрите свойство AutoPopDelay, InitialDelay и ReshowDelay класса ToolTip, так как они контролируют поведение подсказки.
Обычно я играю со значениями, пока не получу то, что «чувствует» право. Это раздражает, когда всплывающая подсказка показывает сразу, а для коротких всплывающих подсказок это также раздражает, когда они исчезают слишком рано. Для действительно длинных всплывающих подсказок, скажем, несколько абзацев (да, плохое дизайнерское решение, но если есть много информации для чтения, по крайней мере, позвольте мне прочитать ее!), Тогда она должна оставаться открытой, пока моя мышь неподвижна.
A tooltip example из MSDN дает следующие значения:
AutoPopDelay = 5000;
InitialDelay = 1000;
ReshowDelay = 500;
// Force the ToolTip text to be displayed whether or not the form is active.
ShowAlways = true;
Как уже упоминалось в комментариях, плакат хочет, чтобы вызвать всплывающую подсказку программно. Для этого нужно вызвать ToolTip.Show(). Чтобы получить эффект задержки, вы, скорее всего, захотите запустить таймер, который подсчитывает время, в течение которого мышь неподвижна. Всякий раз, когда мышь входит, уходит или перемещается внутри элемента управления, это время должно быть сброшено.
Я также должен показать всплывающую подсказку, если мышь движется, но остается в пределах MouseHoverSize; это сложнее, чем кажется. (Должен ли я хранить каждый ход, чтобы я мог проверить после MouseHoverTime, остался ли он рядом с ним?) – SLaks
@SLaks - вы перезапускали таймер всякий раз, когда мышь оставила прямоугольник, определенный MouseHoverSize, как прочитанный при первом запуске таймера. Вам нужно будет сохранить только один Point/Rect (в зависимости от реализации). –
Нет, потому что, если он остается внутри прямоугольника, он начинался посередине? (Что, если он переместил половину MouseHoverSize, а затем еще три четверти MouseHoverSize, так что он находится в пределах MouseHoverSize точки, в которую он переместился ранее?) – SLaks