c# - 在 DataGridView 的列中隐藏值 00:00:00 TimeSpan
问题描述
我有DataGridView
这个DataTable
var dTable = new DataTable();
dTable.Columns.Add("Date", typeof(DateTime));
dTable.Columns.Add("Time", typeof(TimeSpan));
可能会出现TimeSpan
值为00:00:00的 a 。
如果值是类型,是否有可能不显示列中的00:00:00值?DateTime
MinValue
解决方案
在 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;
}
}
推荐阅读
- javascript - 持久化一个数组以在另一个 html 页面上使用
- php - 需要更改数组的行数
- python - 在 biopython 中仅显示 dna 对齐分数
- java - 我的应用程序在我的 android 模拟器上运行,但在我的真实移动设备上运行不正常
- javascript - 如何定义“公会”?
- powerbi - 基于另一个表的条件计算总和的 DAX 语法
- java - 我可以将 Firebase 与 java 桌面应用程序一起使用吗?
- python - 数据框应用(映射)函数类型错误
- sql - 在 SQL Server 插入命令期间,字符串或二进制数据将被截断消息
- php - 使用 FOSUserBundle 进行 Google+ 身份验证