
Introduction
There are a lot of articles about "balloon" Tooltip, many lines of codes written with classes which solved the problem. Here I show yet another solution which I think is the most easiest and does not influence existing System.Windows.Forms.ToolTip implementation.
Solution
Probably you may know, reflection is a big advantage in .NET Framework, and I think will use it this time also. System.Windows.Forms.ToolTip class holds handle to the native tooltip window. This handle is non public, so we need to use reflection to get this member. Then we can change the style of the window to "balloon".
Usage
Need to call function SetBalloonStyle from place where the ToolTip window handle is created. In my example, I do it in OnLoad of the Form. If you call the function with handle which is not valid, exception will be thrown.
protected override void OnLoad(EventArgs e)
{
base.OnLoad (e);
NativeMethods.SetBalloonStyle ( toolTip1 );
}
Final Notes
Same approach can be used in many places, like the example in System.Windows.Forms.PropertyGrid to make it flat.
History