by Anonymous » 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.
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 .
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][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]
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][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 [/code] auf die Standardeinstellung der Tabelle .