[英]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.