Продолжая свой предыдущий вопрос о том же проекте, я бы порекомендовал добавить еще одну вспомогательную функцию для обработки обоих элементов управления текстовым полем:
function Show-ToolTip {
[CmdletBinding()]
param (
[Parameter(Mandatory = $true, Position = 0)]
[System.Windows.Forms.Control]$control,
[string]$text = $null,
[int]$duration = 1000
)
if ([string]::IsNullOrWhiteSpace($text)) { $text = $control.Tag }
$pos = [System.Drawing.Point]::new($control.Right, $control.Top)
$obj_tt.Show($text,$form, $pos, $duration)
}
Я бы также предложил сохранить текст по умолчанию для всплывающей подсказки в свойстве Tag
для каждого текстового поля. Вы всегда можете изменить это динамически в событиях MouseEnter:
$txt_one.Tag = "Testing my new tooltip on first textbox"
$txt_two.Tag = "Testing my new tooltip on second textbox"
Затем добавьте обработчики событий для этих полей:
# event handlers for the text boxes
$txt_one.Add_GotFocus({ Paint-FocusBorder $this })
$txt_one.Add_LostFocus({ Paint-FocusBorder $this })
$txt_one.Add_MouseEnter({ Show-ToolTip $this }) # you can play with the other parameters -text and -duration
$txt_one.Add_MouseLeave({ $obj_tt.Hide($form) })
$txt_two.Add_GotFocus({ Paint-FocusBorder $this })
$txt_two.Add_LostFocus({ Paint-FocusBorder $this })
$txt_two.Add_MouseEnter({ Show-ToolTip $this })
$txt_two.Add_MouseLeave({ $obj_tt.Hide($form) })
и ниже [void]$form.ShowDialog()
распоряжение объекта всплывающей подсказки тоже:
# clean-up
$obj_tt.Dispose()
$form.Dispose()
PS Во время тестирования я обнаружил, что использование события MouseHover
приводило к странным вещам при отображении всплывающей подсказки. Время от времени стрелка указывала вверх от текстового поля. Переход на MouseEnter
в сопровождении MouseLeave
работал лучше всего для меня.
Согласно вашему комментарию, я не могу проверить в PS 7, но для меня в PS 5.1 это работает:
![enter image description here](https://i.stack.imgur.com/iKbhM.gif)
Благодаря Полу Вассерману , который обнаружил, что должна быть настройка реестра в
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Advanced\
имя EnableBalloonTips
.
Это значение DWORD, которое должно быть установлено на 1
. Если на вашем компьютере отсутствует это значение реестра или для него установлено значение 0
, NO, всплывающие подсказки в стиле шара не отображаются .