C# 自定义属性值在构建时丢失

时间:2021-07-07 00:53:19

标签: c# datagridview

我有一个自定义类的问题。发生的情况是在项目编译后它失去了它的价值。有人可以帮我吗?

我有以下自定义类:

public class DataGridViewTextBoxColumnCustom : System.Windows.Forms.DataGridViewTextBoxColumn
{
   public bool EstaDisponibleParaFiltro { get; set; }
}

问题在于,在表单设计器中,当我将 DataGridViewTextBoxCOlumnCustom 类型的列添加到 DataGridView 控件并将其属性 ThisAvailableParaFilter 设置为 true 时,值总是返回到 false。我希望你能帮我解决这个问题。

编辑 1:

这是我的自定义类:

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace Solucion.Presentacion.controles
{
    public class DataGridViewTextBoxColumnCustom : System.Windows.Forms.DataGridViewTextBoxColumn
    {
        public bool EstaDisponibleParaFiltro { get; set; }
    }
}

DataGridView 控件中,我添加了一个 ColumnTypeDataGridViewTextBoxColumnCustom,并将 EstaDisponibleParaFiltro 属性设置为 true

enter image description here

但是当我点击确定时,属性总是返回到 false。我需要修复它。

1 个答案:

答案 0 :(得分:0)

好的,我能够解决问题如下:

  1. 向属性添加以下属性:
<块引用>
[Browsable(true)]
[DefaultValue(false)]
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]
public bool EstaDisponibleParaFiltro { get; set; }
  1. 覆盖克隆方法:
<块引用>
public override object Clone()
{
   var clone = (DataGridViewTextBoxColumnCustom)base.Clone();
   clone.EstaDisponibleParaFiltro = this.EstaDisponibleParaFiltro;
   return clone;
}
  1. 就是这样,谢谢大家的回答。
相关问题