C#DataGridView,未保存列编辑器中的自定义属性
我的表单中有一个datagridview。此datagridview有一些列。有一些自定义列(我创建了自定义datagridview单元格)。这些自定义单元格有一些属性,我想在设计时从datagridview的列编辑器中查看这些属性,以便设置它们。所以在设计时,我打开datagridview的列编辑器,创建自定义datagridview单元格的列。然后,设置一些自定义属性并关闭datagridview的列编辑器。当我打开datagridview的列编辑器时,我之前为这些自定义属性设置的值不会被反映出来,似乎在datagridview的列编辑器关闭后它们就不会被保存。所以为什么?为什么不保存自定义特性的值?我做错了什么 此外,我不能将这些自定义属性保留为空,因为在加载表单时引发了一个异常(对象引用未设置为对象的实例)C#DataGridView,未保存列编辑器中的自定义属性,c#,properties,datagridview,custom-attributes,C#,Properties,Datagridview,Custom Attributes,我的表单中有一个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;
}