我目前设置了DGV列标题的工具提示,如下所示:
dgv.Columns(1).ToolTipText =" Some Text"
目前,文本将显示约5秒钟。我想把它增加到10秒。我正在设置这样的工具提示,因为对于我的每个DataGridViews,我将有大约20个单独的工具提示标题,用于20列。
答案 0 :(得分:1)
据我所知,没有公开的属性可以让你更改ToolTip.AutoPopDelay。您需要求助于Reflection和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实例。