C#WinForm DataGrid CellFormatting在数据源问题中不起作用

时间:2016-07-15 08:11:46

标签: c# winforms datagridview

美好的一天,我将表格中的查询显示在数据网格中。但是我的代码出了问题。我尝试在我的dgview_CellFormatting中调试并添加断点,但是我的代码没有转到单元格格式的事件处理程序。我不知道为什么。

这是我的代码。我把我的数据源放在我的表格加载

// dgv_details is supposed to be my datagrid view name.

DataTable table;

table = balreport.SelectDetails(belreport); // responsible for fetching data from the database.

this.dgv_details.DataSource = table;

this.dgv_details.Sort(this.dgv_details.Columns[0], ListSortDirection.Ascending);
// For sorting the data
foreach (DataGridViewColumn column in this.dgv_details.Columns)
{
    column.SortMode = DataGridViewColumnSortMode.NotSortable;
}

this.dgv_details.CellFormatting += dgv_details_CellFormatting;

这是我的dgv_details_CellFormatting事件处理程序

 if (e.ColumnIndex == 0 && e.RowIndex > 0)
 {
     if (dgv_salesdetails[0, e.RowIndex].Value == dgv_salesdetails[0, e.RowIndex - 1].Value)
     e.Value = "";
 }

排序工作正常,但问题是,e.Value应该隐藏。 结果应该是这样的图像

enter image description here

我真的需要帮助。

1 个答案:

答案 0 :(得分:1)

使用此

// dgv_details is supposed to be my datagrid view name.
this.dgv_details.CellFormatting += dgv_details_CellFormatting;
DataTable table;

table = balreport.SelectDetails(belreport); // responsible for fetching data from the database.

this.dgv_details.DataSource = table;

this.dgv_details.Sort(this.dgv_details.Columns[0], ListSortDirection.Ascending);
// For sorting the data
foreach (DataGridViewColumn column in this.dgv_details.Columns)
{
    column.SortMode = DataGridViewColumnSortMode.NotSortable;
}

导致DataGrid CellFormatting事件在数据网格填充时起作用。