Windows应用程序中DataGridView中的货币格式

时间:2012-05-23 07:25:13

标签: c# datagridview formatting

我无法在DataGridView上显示货币格式。 你能看看这段代码。

private void dataGridView1_DataBindingComplete(object sender,
                                   DataGridViewBindingCompleteEventArgs e)
{
    objPreview.dataGridView1.Columns["Debit"].DefaultCellStyle.Format = "c";
    objPreview.dataGridView1.Columns["Credit"].DefaultCellStyle.Format = "c";
}

6 个答案:

答案 0 :(得分:4)

如果它是windows窗体而不是在将数据绑定到网格之前编写此代码...如下面的形式consturctor ......

public Form1()
{
   this.dataGridView1.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}

如果它的ASP.Net 尝试类似DataFormatString="{0:c}"

的内容
<asp:BoundField HeaderText="Price/Unit" 
                DataField="UnitPrice" SortExpression="UnitPrice" 
                DataFormatString="{0:c}">
                    <ItemStyle HorizontalAlign="Right"></ItemStyle>

答案 1 :(得分:4)

尝试添加此

objPreview.dataGridView1.Columns["Debit"].ValueType = Type.GetType("System.Decimal")
objPreview.dataGridView1.Columns["Credit"].ValueType = Type.GetType("System.Decimal")

答案 2 :(得分:1)

您可以检查(断点或其他)DataBindingComplete事件被触发。所以至少我们知道它不是那个

(已编辑) 因此,如果它被解雇了,这可能会有所帮助

http://msdn.microsoft.com/en-us/library/k4sab6f9

也许通过创建一种新风格它会有所帮助

答案 3 :(得分:0)

此外,您可以将此用于Windows窗体:(或其等效的WPF或ASP,...)

yourColumn.DefaultCellStyle.Format = "#,#";

// And add below if you want
yourColumn.DefaultCellStyle.NullValue= "0";

答案 4 :(得分:0)

如果您已将DataSource绑定到DataGridView,则可以通过设置每个单元格格式来设置单元格样式:

foreach (DataGridViewRow row in dataGridView1.Rows)
{
  row.Cells["Debit"].Style.Format = "c";
  row.Cells["Credit"].Style.Format = "c";  
}

确保您的值是数值。

答案 5 :(得分:0)

尝试将@Pranay Rana建议的代码添加到DataGridView上的 CellFormatting 事件中:

private void NameOfYourGridGoesHere_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    this.NameOfYourGridGoesHere.Columns["UnitPrice"].DefaultCellStyle.Format = "c";
}