2011-08-04 45 views
0

我有一個行的代碼,把一個值轉換成一個DataGridView列:如何在將數據添加到DataGridView列時格式化該值?

dataGridView1.Rows[r].Cells[2].Value = MBRHISTDETLDt.Rows[r].ItemArray[0]; 

要去的值是一個文本字段,如下所示:

"00001100914401" 

我想格式化它,使它看起來像它添加到列時,以下幾點:

"110-09-144.01" 

基本上,我想修剪所有前導零,並有在FO剩餘數量rmat ### - ## - ##。##。

我想我可以使用String類的TrimStart()方法去除前導零,但我不確定如何簡單地對字符串的其餘部分進行格式化,而無需對其進行子串處理並插入破折號和句點。我希望有一個更簡單的方法。任何建議將不勝感激!

謝謝!

回答

3

試試這個:

String value = MBRHISTDETLDt.Rows[r].ItemArray[0].ToString(); 
value = Regex.Replace(value.TrimStart('0'), @"^(\d{3})(\d{2})(\d{3})(\d*)$", "$1-$2-$3.$4"); 
dataGridView1.Rows[r].Cells[2].Value = value; 
+0

嗯,還挺奏效。它修剪了前導零,但沒有格式化字符串。所以,而不是「110-09-144.01」我得到了「1100914401」。但是,這仍然是一個開始。我會修補它,看看會發生什麼。我之前沒有使用正則表達式,所以這將是一個好的開始。謝謝! – Kevin

+0

這很好。第一次嘗試時,我犯了一個錯誤,它只修剪了前導零而沒有其他東西。我重新檢查了你的代碼,看到了我的錯誤並修復了它,然後再次嘗試。它非常完美!非常感謝! – Kevin

相關問題