是的,它是TextRenderer.DrawText()方法的內置功能。它的一個重載接受一個TextFormatFlags參數,你可以傳遞TextFormatFlags.PathEllipsis。爲TextBox做這件事是不合適的,用戶不能合理地編輯這樣一個簡短的路徑,你不知道原始路徑可能是什麼。標籤是最好的控制。
向您的項目中添加一個新類並粘貼下面顯示的代碼。編譯。將新的控件從工具箱的頂部拖放到表單上。不要太小。
using System;
using System.ComponentModel;
using System.Windows.Forms;
class PathLabel : Label {
[Browsable(false)]
public override bool AutoSize {
get { return base.AutoSize; }
set { base.AutoSize = false; }
}
protected override void OnPaint(PaintEventArgs e) {
TextFormatFlags flags = TextFormatFlags.Left | TextFormatFlags.PathEllipsis;
TextRenderer.DrawText(e.Graphics, this.Text, this.Font, this.ClientRectangle, this.ForeColor, flags);
}
}
+1漢斯!這正是我所期待的! :) – 2011-03-24 16:27:39
這太棒了!但是,當我將'Graphics'設置爲'SmoothingMode.AntiAlias'時,TextRenderer似乎並不尊重它。 – petejamd 2011-12-11 00:53:03