Tooltip zeigen trotz Enabled = false

27/09/2007 - 17:13 von Lars Steinmetz | Report spam
Hallo NG,

ich möchte einen Tooltip anzeigen lassen für Controls die jedoch
Enable=false haben. Standardmàßig kommt nun kein Tooltip mehr. Ich
möchte jedoch per Tooltip anzeigen, warum diese Schaltflàche deaktiviert
ist und was getan werden muss / we3lche Vorraussetzungen erfüllt sein
müssen, damit der Knopf aktiviert wird. Wie geht das?

Gruß Lars
 

Lesen sie die antworten

#1 Frank Dzaebel
27/09/2007 - 21:03 | Warnen spam
Hallo Lars,

ich möchte einen Tooltip anzeigen lassen für Controls die jedoch
Enable=false haben. Standardmàßig kommt nun kein Tooltip mehr. Ich möchte
jedoch per Tooltip anzeigen, warum diese Schaltflàche deaktiviert ist und
was getan werden muss / welche Vorraussetzungen erfüllt sein müssen, damit
der Knopf aktiviert wird. Wie geht das?



Nun, wenn ein Control disabled ist, empfàngt es by
design keine Events. Also z.B. ein bisschen drehen:

private void DisableControl(Control ctl, bool disable)
{
if (disable)
{
TransparentPanel p = new TransparentPanel();
p.BackColor = Color.Transparent; p.Bounds = ctl.Bounds;
this.Controls.Add(p); p.BringToFront(); ctl.Tag = p;
string neuerHilfeText = "NEU!"; //toolTip1.GetToolTip(ctl)
toolTip1.SetToolTip(p, neuerHilfeText);
ctl.Enabled = false;
}
else
{
Panel p = ctl.Tag as Panel;
this.Controls.Remove(p);
ctl.Enabled = true;
}
}

class TransparentPanel : Panel
{
const int WS_EX_TRANSPARENT = 0x20;
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= WS_EX_TRANSPARENT;
return cp;
}
}

protected override void OnPaintBackground(PaintEventArgs e)
{ }
}

//=
Über den VisualStyleRenderer geht das zwar teilweise
auch, aber IMHO zu viele Randbedingungen.


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen