2012-05-11 19 views
1

這裏是我的代碼:如何使用一個自定義類的DataGridView和顯示覆選框

class SelectionTableEntry 
{ 
    public CheckBox cbIsChecked { get; set; } 

    public Table Table { get; set; } 

    public string TableName { get; set; } 

    public Button btnEditFilter { get; set; } 

    public SelectionTableEntry(Table table, bool IsChecked) 
    { 
     this.Table = table; 
     this.TableName = table.Name; 
     this.cbIsChecked = new CheckBox(); 
     this.cbIsChecked.Checked = IsChecked; 
     this.btnEditFilter = new Button(); 
     this.btnEditFilter.Text = "Open"; 
    } 
} 

List<SelectionTableEntry> myList = new List<SelectionTableEntry>(); 

// after filling the list with items 
myDataGridView.DataSource = myList; 

現在我想用一個列表以作爲我的DataGridView一個DataSource SelectionTableEntry的類型。 問題是,複選框和按鈕不顯示,所以該字段爲空。

我該如何解決問題?提前致謝。

的問候, 克里斯

+0

請提供代碼,顯示如何顯示按鈕和複選框。很難判斷這些控件是否被添加到DataGridView中。如果我正確地讀了你的陳述,你聽起來好像你只是在數據源中使用它不起作用。數據源用於數據。您需要將這些控件添加到適當的控件集合中。您是否打算將這些控件添加到給定的表格中?如果是這樣,我沒有看到。 – Jeremy

+0

我不知道如何在DataGridView中顯示控件,這就是爲什麼我要求一個可能的解決方案。我如何在DataGridView中顯示它們? – chris6523

+0

這樣做的標準是具有布爾屬性而不是複選框,並添加一個DataGridViewButtonColumn類型的列。你知道這種做事的方式嗎? –

回答

1

DataGridView爲複選框和按鈕提供了現成的列類型,DataGridViewCheckBoxColumnDataGridViewButtonColumn

如果您將AutoGenerateColumns設置爲true,您將自動獲取DataSource對象上每個布爾屬性的複選框列。

,以便類會是什麼樣子:

class SelectionTableEntry 
{ 
    public bool cbIsChecked { get; set; }  
    public Table Table { get; set; }  
    public string TableName { get; set; }  
    public string btnEditFilter { get; set; } 

    public SelectionTableEntry(Table table, bool IsChecked) 
    { 
     this.Table = table; 
     this.TableName = table.Name; 
     this.cbIsChecked = IsChecked; 
    } 
} 

不能自動生成鍵的列,你需要將它們自己添加像這樣:

// Add a button column. 
DataGridViewButtonColumn buttonColumn = 
    new DataGridViewButtonColumn(); 
buttonColumn.HeaderText = ""; 
buttonColumn.Name = "Open"; 
buttonColumn.Text = "Open"; 
buttonColumn.UseColumnTextForButtonValue = true; 

dataGridView1.Columns.Add(buttonColumn); 

你需要做更多的工作一點點對按鈕點擊作出反應,但這些都在MSDN文章中有解釋。

相關問題