2013-11-27 18 views
0

我有一個列表框,我正在填充數據;一串可變長度和3個整數,格式化爲固定長度。將幾個字符串格式化爲一個,同時保持佈局

我無法工作,如何得到字符串文本只佔用X字符

30個字符的空間價值,如果字符串是5個字符長加25個字符的價值填充。如果字符串長度爲10個字符,請添加20個填充字符。

我的最新嘗試,看起來像:

int padding = 30 - item.ProductName.Length; 
string prodName = String.Format("{0, " + padding + "}",item.ProductName); 
string quant = String.Format("{0,15}", item.GetQuantity); 
string price = String.Format("{0,30:C2}", item.LatestPrice); 
string total = String.Format("{0,30:C2}", item.TotalOrder); 
string temp = prodName + quant + price + total; 
return temp; 

但是這仍然沒有工作:http://i.imgur.com/RfxFCO3.png

+0

使用DataGridView控件。 – LarsTech

+0

不幸的是,該規範要求列表框! – pdbrito

回答

1

這應該做的伎倆。

//int padding = 30 - item.ProductName.Length; 
string prodName = String.Format("{0, -30}", item.ProductName); 
string quant = String.Format("{0,15}", item.GetQuantity); 
string price = String.Format("{0,30:C2}", item.LatestPrice); 
string total = String.Format("{0,30:C2}", item.TotalOrder); 
string temp = prodName + quant + price + total; 
return temp; 

如果你想要的產品名稱絕對限制爲30個字符,那麼你就需要截斷產品名> 30個字符。

string prodName = String.Format("{0, -30}", item.ProductName.Length > 30 ? item.ProductName.Substring(0,30): item.ProductName); 
+0

謝謝,這工作。我還必須將我的列表框的字體切換到Lucida Console以使其工作。 – pdbrito

相關問題