簡體   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