在 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;
}
}
我有一个 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;
}
}