Csharp Custom Tool Tip
After messing a lot with tool tips and reading some blogs I think I've made a minimal example that illustrates how to customize the tool tip by just hooking into the ToolTip.Popup and ToolTip.Draw events.
this.m_toolTip.Popup += new PopupEventHandler(toolTip1_Popup); this.m_toolTip.Draw += new DrawToolTipEventHandler(toolTip1_Draw);
While running it looks a little something like this:
One really important property is OwnerDraw that according to [1] the property Gets or sets a value indicating whether the ToolTip is drawn by the operating system or by code that you provide. So set it to true.
this.m_toolTip.OwnerDraw = true;
The event handlers I wrote (copied from the web) resize the tool tip and draws something different than the tooltip, so the OwnerDraw property of the tool tip must be true.
void toolTip1_Popup(object sender, PopupEventArgs e) { SizeF size = e.AssociatedControl.CreateGraphics().MeasureString( m_toolTip.GetToolTip(e.AssociatedControl), m_font); e.ToolTipSize = new Size( Convert.ToInt32(size.Width), Convert.ToInt32(size.Height)); } void toolTip1_Draw(object sender, DrawToolTipEventArgs e) { DrawToolTipEventArgs newArgs = new DrawToolTipEventArgs(e.Graphics, e.AssociatedWindow, e.AssociatedControl, e.Bounds, e.ToolTipText, m_toolTip.BackColor, m_toolTip.ForeColor, m_font); newArgs.DrawBackground(); newArgs.DrawBorder(); newArgs.DrawText(TextFormatFlags.TextBoxControl); }
Download code here [2] and executable here: [3]
See also Csharp Tool Tip Test, Csharp Override Tool Tip Test and Csharp Data Grid View And Tool Tip Test.
Tillhör Kategori Programmering