0
首先我用下面的填充DataGridView
:datagridview的不顯示貨幣格式
dta = New OleDbDataAdapter("Select * From [" & ActName & "$B6:E" & LastEntryRow & "]", cn)
dts = New DataSet
dta.Fill(dts, "Detailtable")
DataGridView1.DataSource = dts
DataGridView1.DataMember = "Detailtable"
我隨後被格式化,其中包括以下代碼的DataGridView:
Dim currencyCellStyle As New DataGridViewCellStyle
currencyCellStyle.Format = "C2"
With Me.DataGridView
.Columns(1).DefaultCellStyle = currencyCellStyle
.Columns(2).DefaultCellStyle = currencyCellStyle
End with
這行之有效。列顯示值爲$ 1234.00。 將新值添加到列後立即顯示爲$ 1234.00。 (工作至今)
如果一列沒有被做了數據集時的任何值,沒有值顯示在DataGridView該列。 (目前沒有問題)
但是,所有添加到空白列的新值顯示爲1234.00。不是$ 1234.00。
我已經嘗試刷新DataGridView 我更改單元格後重新格式化了DataGridView。 它仍然顯示爲1234.00。
如果我保存更改,重新創建DataSet和重新填充的DataGridView一切正常。
我需要在DataGridView以反映新的當值被直接添加到列的正確格式($ 1234.00)?????
如果將線:Me.DataGridView1.Columns(1).DefaultCellStyle.Format =「C2」後立即綁定和列是數字,它的工作原理。請參閱:http://msdn.microsoft.com/en-us/library/vstudio/f9x2790s%28v=vs.100%29.aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-5 – NoChance
我已經加入的結合的結合後立即以下:DataGridView1.Columns(1).ValueType = System.Type.GetType( 「System.Decimal」) DataGridView1.Columns(2).ValueType = System.Type.GetType(「系統.Decimal「) DataGridView1.Columns(1).DefaultCellStyle.Format = 」C2「 DataGridView1.Columns(2).DefaultCellStyle.Format = 」C2「。將值添加到空白列時仍然顯示值爲1234.00而不是$ 1234.00。 – user3184880
這可能是因爲數據表中的列類型不是數字。檢查datacolumn數據類型。 – NoChance