关于c#:在设计时将DataGridView.DefaultCellStyle.NullValue设置为null会在添加行运行时引发错误

关于c#:在设计时将DataGridView.DefaultCellStyle.NullValue设置为null会在添加行运行时引发错误

Setting DataGridView.DefaultCellStyle.NullValue to null at designtime raises error at adding rows runtime

在Visual Studio 2008中

  • 将新的DataGridView添加到窗体
  • 编辑栏
  • 添加一个新的DataGridViewImageColumn
  • 打开此列的CellStyle Builder(DefaultCellStyle属性)
  • 将NullValue从System.Drawing.Bitmap更改为null
  • 尝试在运行时将新行添加到DataGridView
    (dataGridView1.Rows.Add();)
  • 您收到以下错误:System.FormatException:格式化
    单元格的值类型错误。

如果将NullValue改回System.Drawing.Bitmap(原样),则在添加行时仍然会遇到相同的错误。

如果在运行时而不是设计时设置NullValue,则不会出现anny错误。
(dataGridView1.Columns [0] .DefaultCellStyle.NullValue = null;)

你能告诉我为什么吗?


克罗诺斯是对的。
在设计时进行设置后,将其添加到.designer.cs中:

dataGridViewCellStyle1.NullValue =" null";

如果我将" null"修改为null,则可以正常工作。我用反射器检查了DataGridViewCellStyle.NullValue set_NullValue(Object)和get_NullValue,我认为字符串值不应在此处引发任何错误。

无论如何,请务必谨慎,如果要设置它的设计时间,请不要忘记修改.design.cs。


这很可能是设计人员的错误。如果浏览一下.designer.cs文件(可能与将NullValue设置为null之前和之后的区别),您应该能够看到它生成的代码。


复选框不能具有字符串值。
不要在IDE属性对话框中设置任何默认值。
我在RowsDefaultCellStyle.Format属性中写入了"空",这导致了错误。
这是自我造成的。作为修复,我试图将复选框状态设置为未选中,但是我只需要删除字符串值。


Change the NullValue from System.Drawing.Bitmap to null

在设计器中为NullValue的字段中输入" null"时,您将指定字符串值" null"。将NullValue设置为非字符串值的唯一方法是以编程方式设置它,或者自己修改设计器代码。


我发现,如果只从设计器中删除"格式"区域和默认空值区域中的所有项,那就更好了。然后,将其设置回真实的空值。我将尝试在init部分中将其设置为远离设计人员生成的废话。


推荐阅读

    linux进程运行命令?

    linux进程运行命令?,系统,工作,状态,地址,信息,进程,基础,命令,管理,软件,lin

    linux显示运行命令?

    linux显示运行命令?,系统,服务,状态,信息,工具,数据,电脑,标准,管理,时间,如

    linux命令错误代码?

    linux命令错误代码?,系统,密码,电脑,网络,手机,网址,软件,代码,设备,老板,Lin

    linux运行vim命令?

    linux运行vim命令?,系统,工具,官方网站,模式,基础,数据,代码,环境,入口,命令

    linux监控命令运行?

    linux监控命令运行?,系统,工作,地址,信息,工具,情况,标准,环境,命令,状态,lin

    linux中命令停止运行?

    linux中命令停止运行?,系统,代码,第一,命令,进程,指令,程序,方法,接线,硬盘,l

    linux自动运行命令?

    linux自动运行命令?,服务,系统,时间,代码,周期性,第一,命令,管理,在线,状态,l

    linux开启运行命令?

    linux开启运行命令?,系统,服务,工作,管理,状态,命令,标准,情况,环境,工具,lin

    linux运行wps命令?

    linux运行wps命令?,软件,官网,名称,时间,电脑,系统,工具,环境,项目,数据,wps

    linux运行cmd命令?

    linux运行cmd命令?,电脑,系统,状态,情况,环境,命令,单位,管理,设备,数据,电脑

    linux运行两个命令?

    linux运行两个命令?,网络,地址,系统,工作,暂停,命令,网站,密码,网上,入口,Lin

    linux命令运行代码?

    linux命令运行代码?,代码,单位,系统,环境,连续,保险,工具,命令,文件,音乐,Lin

    linux命令忽略错误?

    linux命令忽略错误?,系统,地址,工作,信息,设备,命令,设计,灵活,观察,标准,lin

    linux命令运行脚本?

    linux命令运行脚本?,代码,系统,工作,设计,状态,命令,脚本,文件,目录,终端,运

    linux上运行的命令?

    linux上运行的命令?,系统,工作,软件,网络,地址,信息,情况,命令,灵活,基础知

    linux怎么运行命令?

    linux怎么运行命令?,系统,工作,首页,工具,终端,地址,命令,信息,电脑,情况,怎

    linux右击运行命令?

    linux右击运行命令?,系统,工作,设备,标准,首页,发行,电脑,终端,命令,文件,lin

    linux如何运行命令?

    linux如何运行命令?,系统,工具,基础,代码,环境,管理,网络,初级,密码,终端,Lin

    linux接收命令运行?

    linux接收命令运行?,系统,工作,工具,信息,地址,命令,连续,代码,管理,发行,lin

    linux运行文件命令?

    linux运行文件命令?,地址,标准,命令,系统,设备,发行,数据,单位,文件,终端,Lin