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