Насколько я знаю, нет общедоступного свойства, которое позволило бы вам изменить ToolTip.AutoPopDelay . Вам придется прибегнуть к Reflection и исходному коду DataGridView , чтобы взломать решение.
DataGridView имеет поле с именем toolTipControl
, которое является экземпляром DataGridViewToolTip . DataGridViewToolTip
имеет поле с именем toolTip
, которое является System.Windows.Forms.ToolTip
. Это поле инициализируется в методе DataGridViewToolTip.Activate
.
Используя эту информацию, можно изменить следующий код для изменения AutoPopDelay
.
Private Shared Sub SetDGVToolTipDelay(dgv As DataGridView)
Dim fi_toolTipControl As FieldInfo = GetType(DataGridView).GetField("toolTipControl", BindingFlags.Instance Or BindingFlags.NonPublic)
Dim toolTipControl As Object = fi_toolTipControl.GetValue(dgv)
Dim fi_ToolTip As FieldInfo = fi_toolTipControl.FieldType.GetField("toolTip", BindingFlags.Instance Or BindingFlags.NonPublic)
Dim tt As ToolTip = CType(fi_ToolTip.GetValue(toolTipControl), ToolTip)
If tt Is Nothing Then
tt = New ToolTip
tt.ShowAlways = True
tt.InitialDelay = 0
tt.UseFading = False
tt.UseAnimation = False
fi_ToolTip.SetValue(toolTipControl, tt)
End If
tt.AutoPopDelay = 10000 ' 10 seconds
End Sub
Просто позвоните SetDGVToolTipDelay
и передайте экземпляр DataGridView, для которого вы хотите изменить задержку.