您好我正在开发一个小型winforms应用程序,我更像是一个Web开发人员,请原谅我这里的任何无知。
基本上我有一堆网格视图,我从背后的代码绑定,如:
var con = new SelectOrdersLineItemByOrder() { ConnectionString = ConStr, fk_OrderID = Id };
DataSet ds = con.ExecuteDataSet();
gvVendors.DataSource = ds.Tables[0];
目前我正在格式化列:
gvVendors.Columns[5].FormatString = "{0:dd/MM/yyyy}";
由于缺乏一个更好的词,这是一个痛苦的屁股!!!
有没有办法挂钩事件处理程序或在事后迭代并说出如下内容:
foreach (column c in gvVendors)
{
if(c is DateTime) { Format Accordingly ... }
if(c is Decimal) { Format Accordingly ... }
}
非常感谢任何帮助...
答案 0 :(得分:1)
您可以简单地编写自己的方法,例如FormatGrid(),它为您执行所有格式化,并在为其分配数据源后调用它。像
var con = new SelectOrdersLineItemByOrder() { ConnectionString = ConStr, fk_OrderID = Id };
DataSet ds = con.ExecuteDataSet();
gvVendors.DataSource = ds.Tables[0];
FormatGrid();
您可以使用以下属性设置格式。
DataGridViewCellStyle.Format
无需遍历列。您知道列名称,它们不会动态更改,只是
dataGridView1.Columns["YourColumnName"]
应该足够了。