如何将列添加到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");
}
}
}
我想设计一个新的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");
}
}
}