繁体   English   中英

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

[英]How to add a column to datagridview usercontrol c# winform

我想设计一个新的datagridview作为用户控件。 它将具有一个公共的和可浏览的属性,该属性指示此datagridview是否具有计数器列。 如果为true,则在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");
        }
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM