如何在c#中为datagridview列单元格设置默认值

时间:2014-10-07 11:49:18

标签: c# sql datagridview default

如何在c#中为datagridview列单元格设置默认值,而某些列用数据库值填充,而某些列用默认值填充,就像这样...... 例如,第1列,第2列,第3列从数据库值填充,剩余列第4列单元格用9 AM填充,第5列用6 PM填充

private void dataGridView1_DefaultValuesNeeded(object sender, 
                                               DataGridViewRowEventArgs e)
{
    // This is not working as I explain below
    e.Row.Cells["in_time"].Value = "9 AM";
    e.Row.Cells["Out_time"].Value = "6 PM";
} 

我使用此代码,但值位于行的末尾,列是datagridview的“In_Tim”列,在我单击特定单元格之前,这些值是不可见的。
如何填写所有列单元格中的默认值?

2 个答案:

答案 0 :(得分:2)

dataGridView1.Columns["in_time"].DefaultCellStyle.NullValue = "9 AM";
dataGridView1.Columns["Out_time"].DefaultCellStyle.NullValue = "6 PM";  
经过一些建议后 这就是我想在datagridview列中显示的方式

答案 1 :(得分:2)

DataGridView控件有一个名为DefaultValuesNeeded的事件,它处理新添加的行的默认值填充。

MSDN article regarding this event

本文中概述的DefaultValuesNeeded事件的基本语法如下:

private void dataGridView1_DefaultValuesNeeded(object sender, System.Windows.Forms.DataGridViewRowEventArgs e)
{
    e.Row.Cells["Region"].Value = "WA";
    e.Row.Cells["City"].Value = "Redmond";
    e.Row.Cells["PostalCode"].Value = "98052-6399";
    e.Row.Cells["Country"].Value = "USA";
    e.Row.Cells["CustomerID"].Value = NewCustomerId();
}