Re: Formatting a column in a datagridview to currency by Marc
Marc
Fri May 09 02:17:57 CDT 2008
One other thought - if you are letting the grid auto-generate the
columns by attaching a DataSource (rather than by creating explicit
columns), then you need to be aware that the columns won't exist until
the grid needs to display itself. In which case, you can use the
ColumnAdded event as a prompt (below).
Marc
grid.ColumnAdded += (s, a) =>
{
if (a.Column.DataPropertyName == "Amount")
{
a.Column.DefaultCellStyle.Format = "c";
}
};using System;
using System.ComponentModel;
using System.Windows.Forms;
class Foo
{
public decimal Amount { get; set; }
}
class Program
{
[STAThread]
static void Main()
{
BindingList<Foo> data = new BindingList<Foo>();
data.Add(new Foo {Amount = 1.2M});
data.Add(new Foo {Amount = 7.8M});
DataGridView grid = new DataGridView();
grid.Dock = DockStyle.Fill;
grid.DataSource = data;
grid.ColumnAdded += (s, a) =>
{
if (a.Column.DataPropertyName == "Amount")
{
a.Column.DefaultCellStyle.Format = "c";
}
};
Application.EnableVisualStyles();
Application.Run(new Form {Controls = {grid}});
}
}