我正在尋找一種方法來插入一個C#路徑省略號在一個WinForms程序的路徑,在這裏找到了答案#2:C# Path Ellipsis without Win32 API call添加省略號,而不Win32 API調用(重新)
使用RTM VS2010和.Net 4.0版本,我無法得到建議的方法工作。我搜索了'Net和找到的使用相同方法的示例代碼,但它以相同的方式失敗。
你可以在下面的代碼中看到我想縮短的字符串。
調用MeasureText方法後,無論是輸入字符串(ORIGINALNAME)和輸出字符串(ellipsisedName)是這樣的:
d:\ ABCD \ EFGH \ IJKL \ MNOP \ QRST \ ... \測試.TXT \ 0F \ GHIJ \ KLMN \使用opqr \ STIV \ WXYZ \ test.txt的
兩個問題:
1)生成的字符串narfed(如預期的路徑被截斷,但隨之而來的什麼樣子就像C風格終止空和原始路徑的塊)。
2)我的原始字符串被更改爲以與輸出字符串相同。
我做錯了什麼?
namespace WindowsFormsApplication2 {
public partial class Form1 : Form {
public Form1()
{
InitializeComponent();
string OriginalPath = @"d:\abcd\efgh\ijkl\mnop\qrst\uvwx\yzAB\CDEF\GHIJ\KLMN\OPQR\STIV\WXYZ\test.txt";
string ellipsisedPath = OriginalPath;
Size proposedSize = new Size(label1.Width, label1.Height);
TextRenderer.MeasureText(ellipsisedPath, label1.Font, proposedSize, TextFormatFlags.ModifyString | TextFormatFlags.PathEllipsis);
}
}
}
我看不到如何調用MeasureText()可能會修改OriginalPath。如果真的發生了這種情況,MeasureText()方法會做一些非常奇怪的事情。 – 2010-04-14 20:22:02