2015-12-16 193 views
0

我正在做一個項目,我需要添加一個字段(我們稱之爲字段)到DataGridView單元格。這一點是爲了能夠在DataGriidView單元格中添加一個額外的字段,這將使項目的其餘部分更加容易。自定義datagridview單元格?

我創建了以下內容:

public class CustomGridRow:DataGridRow{} 
public class CustomGridColumn:DataGridViewColumn 
{ 
public CustomGridColumn 
    { 
    This.TemplateCell = new CustomGridTextBoxCell() 
    } 
} 
public class CustomGridTextBoxCell: DataGridViewTextBoxCell 
{ 
public string field; 
} 

問題: 如果我創建像一個類(這是我想達到的目標):

public class CustomGridCell: DataGridViewCell{} 

而且場移到CustomGridCell ,我希望CustomGridTextBoxCell繼承自新的CustomGridCell,但它已經有一個基類DataGridViewCell和C#不允許類繼承兩個基類。

我的理解是通過Interfaces來解決嗎?任何想法如何解決?

+0

難道你不能使用抽象類,然後創建一個繼承自它的具體類嗎? – sr28

+0

你能說明一個答案嗎? @ sr28 –

回答

1

嘗試

class CustomDataGridColumn : DataGridViewColumn 
{ 
    this.CellTemplate = new CustomGridTextBoxCell(); 
} 

class CustomGridTextBoxCell : CustomGridCell 
{ 

} 

class CustomGridCell : DataGridViewCell 
{ 
    public string fieldA { get; set; } 

    public CustomGridCell() 
    { 

    } 
} 
0

假設我明白你想要做什麼,我想你可以這樣做:

class CustomGridTextBoxCell : CustomGridCell 
{ 
    public CustomGridTextBoxCell(string field) 
     : base(field) 
    { 
    } 
} 

abstract class CustomGridCell : DataGridViewCell 
{ 
    private string _field; 

    public CustomGridCell(string field) 
    { 
     this._field = field; 
    } 

    public string field 
    { 
     get { return this._field; } 
    } 
} 

注:我沒有測試這一點,它只是十首發。

UPDATE:怎麼樣,如果你改變了抽象類是這樣的,那麼:

abstract class CustomGridCell : DataGridViewCell 
{ 
    public string field { get; set; }; 

    public CustomGridCell(string field) 
    { 
     this.field = field; 
    } 
} 

UPDATE

您也可以嘗試:

class CustomDataGridColumn : DataGridViewColumn 
{ 
    this.CellTemplate = new CustomGridTextBoxCell(); 
} 

class CustomGridTextBoxCell : CustomGridCell 
{ 

} 

class CustomGridCell : DataGridViewCell 
{ 
    public string fieldA { get; set; } 

    public CustomGridCell() 
    { 

    } 
} 
+0

當我回家並告訴你時,會測試它。 –

+0

似乎工作...我想實現的是創建一個自定義的datagridview其datagridviewcells有一個字段 –

+0

你的意思是'不'似乎工作? – sr28