Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#DataGridView,未保存列编辑器中的自定义属性_C#_Properties_Datagridview_Custom Attributes - Fatal编程技术网

C#DataGridView,未保存列编辑器中的自定义属性

C#DataGridView,未保存列编辑器中的自定义属性,c#,properties,datagridview,custom-attributes,C#,Properties,Datagridview,Custom Attributes,我的表单中有一个datagridview。此datagridview有一些列。有一些自定义列(我创建了自定义datagridview单元格)。这些自定义单元格有一些属性,我想在设计时从datagridview的列编辑器中查看这些属性,以便设置它们。所以在设计时,我打开datagridview的列编辑器,创建自定义datagridview单元格的列。然后,设置一些自定义属性并关闭datagridview的列编辑器。当我打开datagridview的列编辑器时,我之前为这些自定义属性设置的值不会被反

我的表单中有一个datagridview。此datagridview有一些列。有一些自定义列(我创建了自定义datagridview单元格)。这些自定义单元格有一些属性,我想在设计时从datagridview的列编辑器中查看这些属性,以便设置它们。所以在设计时,我打开datagridview的列编辑器,创建自定义datagridview单元格的列。然后,设置一些自定义属性并关闭datagridview的列编辑器。当我打开datagridview的列编辑器时,我之前为这些自定义属性设置的值不会被反映出来,似乎在datagridview的列编辑器关闭后它们就不会被保存。所以为什么?为什么不保存自定义特性的值?我做错了什么

此外,我不能将这些自定义属性保留为空,因为在加载表单时引发了一个异常(对象引用未设置为对象的实例)


如果有人能帮助我,我将不胜感激。

我遇到了同样的问题。搜索之后,我在一个微软网站上找到了一些反馈,说我必须在我的
datagridviewtextboxcolumn
中实现
iCloneable

您可以找到文章和相关章节:

在某些罕见的情况下,列类型可能希望公开 在单元级别没有等效属性。这方面的例子有 文本和DataGridViewImageColumn.Image。在里面 在这些情况下,column类需要重写Clone方法以 在那片土地上复制

我的专栏增加了四个额外属性,下面是我的iClonable函数:

      //Override this method to set the custom properties.
  public override object Clone()
  {
     var col = base.Clone() as BauerDataGridViewTextBoxColumn;
     col.ShowBorder = this.ShowBorder;
     col.BorderColor = this.BorderColor;
     col.ColumnChooserIsOptional = this.ColumnChooserIsOptional;
     col.ColumnChooserColumnLabel = this.ColumnChooserColumnLabel;
     return col;
  }