控件Disabled时的ToolTip提示
源网址
http://www.codeproject.com/KB/miscctrl/ToolTip_WhenDisabled.aspx
效果图
上图中,RadioBox是Disabled的(Enabled = false),但它还可以显示提示,而控件在Enabled时显示不同的提示。这样就可以实现更好的交互性和友好性。
代码分析
1, 控件是继承自ToolTip
EnhancedToolTip Inherits ToolTip
2, 设置Disabled时的提示
下面的方法为控件在Paint在时候增加逻辑,以显示提示。
Public Sub SetToolTipWhenDisabled(ByVal control As Control, ByVal value As String)
If control Is Nothing Then
Throw New ArgumentNullException("control")
End If
If Not String.IsNullOrEmpty(value) Then
m_ToolTipWhenDisabled(control) = value
If Not control.Enabled Then
'When the control is disabled at design time, the EnabledChanged
'event won't fire. So, on the first Paint event, we should call
'PutOnTransparentSheet().
AddHandler control.Paint, AddressOf DisabledControl_Paint
End If
AddHandler control.EnabledChanged, AddressOf Control_EnabledChanged
Else
m_ToolTipWhenDisabled.Remove(control)
RemoveHandler control.EnabledChanged, AddressOf Control_EnabledChanged
End If
End Sub
3, 定位
SetToolTip(ts, m_ToolTipWhenDisabled(control))
这ToolTip控件的一个重要的方法,可以让控件在适当的地方显示。如上图中的Disabled的RadioBox上面显示提示。

浙公网安备 33010602011771号