0

DataGridViewTextBoxColumnにIsCheck (値 true/false)という名前のプロパティを作成するにはどうすればよいですか?

インターネットで検索しましたが、プロパティを作成するための解決策が見つかりません。コードスニペットなどで私を助けてください。

4

2 に答える 2

2

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;
    }
}
于 2015-02-15T11:01:38.427 に答える
1

さて、通常の方法ですべて作成できます。

class myCheckedColumn : DataGridViewTextBoxColumn
{
    public bool IsChecked { get; set; }

    public myCheckedColumn ()               { IsChecked = false;    }
    public myCheckedColumn (bool checked_)  { IsChecked = checked_; }
}

DataGridViewDGV の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ほとんど同じことを行います。

于 2015-02-14T14:40:32.537 に答える