[英]How to create custom property of DataGridViewTextBoxColumn in c# win. form
如何在DataGridViewTextBoxColumn中創建名為IsCheck (值為true / false)的屬性?
我在互聯網上搜索,但找不到創建財產的解決方案。 請提供代碼片段來幫助我。
除了TaW的響應之外,建議您重寫Clone()
函數,以避免Designer
遇到麻煩。
class myCheckedColumn : DataGridViewTextBoxColumn
{
public bool IsChecked { get; set; }
public myCheckedColumn () { IsChecked = false; }
public myCheckedColumn (bool checked_) { IsChecked = checked_; }
public override object Clone()
{
myCheckedColumn clone = (myCheckedColumn)base.Clone();
myCheckedColumn.IsChecked = IsChecked;
return clone;
}
}
好了,您可以按照通常的方式創建所有內容:
class myCheckedColumn : DataGridViewTextBoxColumn
{
public bool IsChecked { get; set; }
public myCheckedColumn () { IsChecked = false; }
public myCheckedColumn (bool checked_) { IsChecked = checked_; }
}
現在將其添加到DataGridView
DGV的Columns
集合中:
myCheckedColumn checkColumn = new myCheckedColumn (true);
checkColumn.Name = "checkColumn";
checkColumn.HeaderText = "some Title";
checkColumn.MinimumWidth = 120;
DGV.Columns.Insert(someindex, checkColumn);
最后我們可以對其進行測試:
private void DGV_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e)
{
int col = e.ColumnIndex;
myCheckedColumn column = DGV.Columns[col] as myCheckedColumn ;
if (column != null)
{
Console.WriteLine(column.IsChecked.ToString());
column.IsChecked = !column.IsChecked;
}
}
注意:這是您所要求的Column
,而不是Cell
! 因此,該列的每個插入實例具有一個值。要創建自定義DataGridViewTextBoxCell
您將執行幾乎相同的操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.