在 DataGridView 的列中隐藏值 00:00:00 TimeSpan

Hide value 00:00:00 TimeSpan in Column of DataGridView

我有一个 DataGridView 这个 DataTable

var dTable = new DataTable();
dTable.Columns.Add("Date", typeof(DateTime));
dTable.Columns.Add("Time", typeof(TimeSpan));

可能会出现一个TimeSpan,值为00:00:00.

是否有可能不在列中显示 00:00:00 值,如果值为 MinValue,则与 DateTime 一样类型?

在 DataGridView 中使用 CellFormatting 事件,更改显示值而不更改基础数据(TimeSpan.Zero 是“00:00:00”值)

private void Grid_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
    if (e.ColumnIndex < 0 || e.RowIndex < 0) return;
    var grid = (DataGridView)sender;

    if (grid.Columns[e.ColumnIndex].ValueType == typeof(TimeSpan) &&
        TimeSpan.Zero == (TimeSpan)grid[e.ColumnIndex, e.RowIndex].Value)
    {
        e.Value = " ";
        e.FormattingApplied = true;
    }
}