簡體   English   中英

如何在C#Win中創建DataGridViewTextBoxColumn的自定義屬性。 形成

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM