我有一個DataGridView從SQL Server數據庫中的表填充。其中一列是price
。DataGridView值的格式
DGV中的列類型自動設置爲十進制。
在某些情況下,我需要在此列文本的單元格中寫入「無」而不是價格。
我該怎麼辦?
DGV.Item("price", 0).Value = "none"
不起作用,因爲單元格的十進制類型。
我有一個DataGridView從SQL Server數據庫中的表填充。其中一列是price
。DataGridView值的格式
DGV中的列類型自動設置爲十進制。
在某些情況下,我需要在此列文本的單元格中寫入「無」而不是價格。
我該怎麼辦?
DGV.Item("price", 0).Value = "none"
不起作用,因爲單元格的十進制類型。
而不是所有這些,使用datacolumn表達式屬性。
如果你只是想改變數據的顯示方式(這聽起來就像你想要的),勾住CellFormatting事件。這是一般想法(代碼未經測試):
private void dgv_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (some_condition(e.ColumnIndex, e.RowIndex)) {
e.Value = "none";
e.FormattingApplied = true;
}
}
看看如何實現的IFormatProvider & ICustomFormatter ...
然後在DGV,你可以把它分配給通過ColumnFormatProvider列格式。