Я использую следующий класс, который наследует от ToolStripStaTusLabel и добавляет функцию в текст ellipsis, который слишком длинный для отображения в управлении.
[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);
}
}
Это работает нормально, но не хватает поддержки различных свойств родительского контроля, таких как Bordersides , а также любая поддержка изображений и так далее. Есть ли способ получить код ToolStripStatusLabel , чтобы попытаться скопировать или эмулировать часть его поведения? У меня действительно нет никаких идей о том, с чего начать искать.
[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>
Это работает очень хорошо, но, вероятно, не поддерживает некоторые свойства, такие как изображения. Также, по -видимому, требуется, чтобы управление Parent StatusStrip, по -видимому, требует установки MayOutStyle
Я использую следующий класс, который наследует от ToolStripStaTusLabel и добавляет функцию в текст ellipsis, который слишком длинный для отображения в управлении. [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] Это работает нормально, но не хватает поддержки различных свойств родительского контроля, таких как Bordersides , а также любая поддержка изображений и так далее. Есть ли способ получить код ToolStripStatusLabel , чтобы попытаться скопировать или эмулировать часть его поведения? У меня действительно нет никаких идей о том, с чего начать искать.[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> Это работает очень хорошо, но, вероятно, не поддерживает некоторые свойства, такие как изображения. Также, по -видимому, требуется, чтобы управление Parent StatusStrip, по -видимому, требует установки MayOutStyle [/code] по умолчанию таблицы .