I've drawn on a Tool Tip control - The code is below.
private void toolTip1_Popup(object sender, PopupEventArgs e)
{
ToolTip tt = (sender as ToolTip);
string toolTipText = tt.GetToolTip(e.AssociatedControl);
e.ToolTipSize = TextRenderer.MeasureText(toolTipText, new Font("Arial", 16.0f));
}
private void toolTip1_Draw(object sender, DrawToolTipEventArgs e) => DrawToolTip(sender, e);
[System.Runtime.InteropServices.DllImport("User32.dll")]
static extern bool MoveWindow(IntPtr h, int x, int y, int width, int height, bool redraw);
private void DrawToolTip(object sender, DrawToolTipEventArgs e)
{
ToolTip tt = (sender as ToolTip);
string toolTipText = tt.GetToolTip(e.AssociatedControl);
Font f = new Font("Arial", 16.0f);
e.DrawBackground();
e.DrawBorder();
toolTipText = e.ToolTipText;
e.Graphics.DrawString(e.ToolTipText, f, Brushes.Black, new PointF(2, 2));
}
And then to set the ToolTip text:
toolTip1.SetToolTip(btnLogin, "Some text.....");
Additionally, here is an image of what is happening.
It looks alright, but it has come to my attention that if the text is a certain length, the tooltip will go off-screen. Is there anyway to prevent that? I would rather not have to add Environment.NewLine(); or \n etc, since I would need to do that for MANY strings.
