我目前像这样设置 DGV 列标题的工具提示:
dgv.Columns(1).ToolTipText = "一些文本"
目前,文本将显示大约 5 秒。我想将它增加到 10 秒。我正在这样设置我的工具提示,因为对于我的每个 DataGridView,我将有大约 20 个单独的工具提示标题用于 20 列。
最佳答案
据我所知,没有任何公开的属性可以让您更改 ToolTip.AutoPopDelay .您将需要求助于反射和 DataGridView source code破解解决方案。
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 实例。
关于vb.net - 如何增加 DataGridView 列标题工具提示的显示时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50400129/