我有一个带有以下事件的表格。但是,当鼠标指针悬停在设置了CellStyle
的单元格上时,应用程序将引发异常。
DataGridViewCellStyle AStyle = new DataGridViewCellStyle { BackColor = Color.Green };
private void DGV_CellFormatting(object sender, DataGridViewCellFormattingEventArgs e)
{
if (string.IsNullOrEmpty(e.Value.ToString()))
{
e.CellStyle = AStyle;
}
例外:
base.OnMouseMove(e);
$ exception {“值不能为空。\ r \ n参数名称:字体”} System.ArgumentNullException
答案 0 :(得分:1)
该异常基本上是在告诉您,Font
的{{1}}属性用于设置DataGridViewCellStyle
时不能为null。将初始化CellStyle
变量的方式更改为如下形式:
AStyle
或者,您可以完全摆脱DataGridViewCellStyle AStyle;
public Form1()
{
InitializeComponent();
AStyle = new DataGridViewCellStyle { BackColor = Color.Green, Font = DGV.Font };
}
(如果仅使用它来设置背景色),而改为使用类似的方法:
AStyle
还有一点要注意的是,如果e.CellStyle.BackColor = Color.Green;
为null,则e.Value.ToString()
可能会引发NullReferenceException。您可以考虑添加null-conditioner来避免这种情况:
e.Value