DataGridViewTextBoxColumnにIsCheck (値 true/false)という名前のプロパティを作成するにはどうすればよいですか?
インターネットで検索しましたが、プロパティを作成するための解決策が見つかりません。コードスニペットなどで私を助けてください。
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
!ではありません。したがって、その列の挿入されたインスタンスごとに 1 つの値があります。カスタムを作成するには、DataGridViewTextBoxCell
ほとんど同じことを行います。