Hinzufügen fehlender Eigenschaften Unterstützung zu ToolStripStatusLabel, das OnPaint überschreibt?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Hinzufügen fehlender Eigenschaften Unterstützung zu ToolStripStatusLabel, das OnPaint überschreibt?

Post by Anonymous »

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.

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);
}
}
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.

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 
auf die Standardeinstellung der Tabelle .

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post