將標籤的Spring屬性設置爲True可以自動調整其大小。要得到省略號,您需要重寫該繪圖。爲您的項目添加一個新類並粘貼下面顯示的代碼。編譯。您將在狀態條設計器下拉列表中獲得新的SpringLabel控件。
using System;
using System.Drawing;
using System.Windows.Forms;
using System.Windows.Forms.Design;
[ToolStripItemDesignerAvailability(ToolStripItemDesignerAvailability.StatusStrip)]
public class SpringLabel : ToolStripStatusLabel {
public SpringLabel() {
this.Spring = true;
}
protected override void OnPaint(PaintEventArgs e) {
var flags = TextFormatFlags.Left | TextFormatFlags.EndEllipsis;
var bounds = new Rectangle(0, 0, this.Bounds.Width, this.Bounds.Height);
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, bounds, this.ForeColor, flags);
}
}
如果您使用Image或TextAlign屬性,則需要做更多的工作。
很好,這個類在Spring屬性設置時添加了橢圓。 但我有多個ToolStripStatusLabel(或SpringLabel現在),實際上有三個。當我調整窗口大小時,只有最後一個可見標籤應該被截斷。設置Spring屬性可以使它們全部重新調整大小。 當邊界矩形爲零時,是否有辦法捕捉調整大小事件並選擇性地設置左邊鄰居的Spring屬性? – harper 2010-05-27 07:29:42
使用StatusStrip.Resize事件並自己設置標籤大小。 – 2010-05-27 10:51:29
如果可以的話,我會給這個+10 – 2013-12-06 17:21:02