如何将列添加到datagridview usercontrol c# winform

How to add a column to datagridview usercontrol c# winform

我想设计一个新的datagridview 作为usercontrol。它将有一个 public 和可浏览的 属性 指示此 datagridview 是否有计数器列。如果为真,则在行的 0 索引处添加一个名为 'Counter' 的新 DataGridViewColumn。

这是我的用户控制代码:

public partial class UniLibDataGridView : DataGridView
{
    public UniLibDataGridView()
    {
        InitializeComponent();
        if (_HasCounterColumn)
        {
            this.Columns.Add("Counter", "Counter");
        }
    }
    private bool _HasCounterColumn;
    [Browsable(true)]
    [Description("Indicates has Counter Column.")]
    [Category("UniLib Tools")]
    [DisplayName("Has Counter Column")]
    public bool HasCounterColumn
    {
        get { return _HasCounterColumn; }
        set { _HasCounterColumn = value; }
    }

}

无法在设计时更改 _HasCounterColumn 的值。

它无法工作,因为设计者在设置 HasCounterColumn 属性.

之前创建对象(调用构造函数)

试试这个:

public class UniLibDataGridView : DataGridView
{
    public UniLibDataGridView()
    {
    }

    [Browsable(true)]
    [Description("Indicates has Counter Column.")]
    [Category("UniLib Tools")]
    [DisplayName("Has Counter Column")]
    [DefaultValue(false)]
    public bool HasCounterColumn
    {
        get { return Columns.Contains("Counter"); }
        set
        {
            if (value)
                Columns.Add("Counter", "Counter");
            else if (Columns.Contains("Counter"))
                Columns.Remove("Counter");
        }
    }
}