Hinzufügen fehlender Eigenschaften Unterstützung zu ToolStripStatusLabel, das OnPaint überschreibt?
Posted: 02 Feb 2025, 20:05
Ich verwende die folgende Klasse, die von ToolStripStatusLabel erbt und die Funktion zu Ellipsis -Text hinzugefügt wird, die zu lang ist, um im Steuerelement angezeigt zu werden.
Dies funktioniert einwandfrei, fehlt jedoch die Unterstützung für verschiedene Eigenschaften der übergeordneten Steuerung, wie z. B. Grenzen sowie jegliche Unterstützung für Bilder usw. Gibt es eine Möglichkeit, den ToolStripStatusLabel -Code zu erreichen, um einen Teil seines Verhaltens zu kopieren oder zu emulieren? Ich habe wirklich keine Ideen, wo ich anfangen soll. auf die Standardeinstellung der Tabelle .
Code: Select all
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public partial class SpringLabel : ToolStripStatusLabel
{
public SpringLabel()
{
this.Spring = true;
}
protected override void OnPaint(PaintEventArgs e)
{
var flags = TextFormatFlags.Left | TextFormatFlags.EndEllipsis | TextFormatFlags.VerticalCenter;
var bounds = new Rectangle(0, 0, this.Bounds.Width, this.Bounds.Height);
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, bounds, this.ForeColor, flags);
}
}
Code: Select all
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public partial class SpringLabel : ToolStripStatusLabel
{
private string? _sltext;
public new string? Text
{
get => _sltext;
set { _sltext = value; ToolTipText = _sltext; Invalidate(); }
}
public SpringLabel()
{
this.Spring = true;
}
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
var flags = TextFormatFlags.Left | TextFormatFlags.EndEllipsis | TextFormatFlags.VerticalCenter;
var bounds = new Rectangle(0, 0, this.Bounds.Width, this.Bounds.Height);
TextRenderer.DrawText(e.Graphics, _sltext, this.Font, bounds, this.ForeColor, flags);
}
}
< /code>
Dies funktioniert gut, unterstützt aber wahrscheinlich einige Eigenschaften wie Bilder. Auch die übergeordnete StatusStrip -Steuerung scheint zu erfordern, dass das LayoutStyle