2013-05-02 24 views
0

我有一個DataGridView,如此鏈接「http://i.stack.imgur.com/DgwaD.png」所示。無法隱藏C#中的CellClickEvent的列datagridview

圖像在標誌列中的OnCLick我想在點擊行下面添加一個新行,只有2列「開始」,「結束」,「狀態」和「標誌」將被隱藏,用於新添加的行。

DataGrid的人口完成如下:

CheckBox chkbox = new CheckBox(); 
chkbox.Text = "click"; 
//column 0 
DataGridViewCheckBoxColumn checkcol = new DataGridViewCheckBoxColumn(); 
checkcol.HeaderText = "Select"; 
dataGridView1.Columns.Add(checkcol);       // Want to hide on ImageClick event 

//column 1 
DataGridViewImageColumn imageCol = new DataGridViewImageColumn(); 
imageCol.HeaderText = "Package"; 
imageCol.Image = plus_img; 
dataGridView1.Columns.Add(imageCol); 
dataGridView1.Rows.Add(); 

//column 2 
DataGridViewTextBoxColumn col2 = new DataGridViewTextBoxColumn(); 
col2.HeaderText = "Latest Update"; 
dataGridView1.Columns.Add(col2); 

//column 3 
DataGridViewTextBoxColumn col3 = new DataGridViewTextBoxColumn(); 
col3.HeaderText = "Installed Version"; 
dataGridView1.Columns.Add(col3); 

//column 4 
DataGridViewTextBoxColumn col4 = new DataGridViewTextBoxColumn(); 
col4.HeaderText = "Details"; 
dataGridView1.Columns.Add(col4); 

使用CellContentClick:

int col = e.ColumnIndex; // clicked column index 
int row = e.RowIndex; // clicked row index 

    dataGridView1.Rows[row + 1].Cells[0].Visible = false; 

我使用的最後一行隱藏下一行0列。但它給了我以下錯誤

「屬性或索引器'System.Windows.Forms.DataGridViewCell.Visible'不能被分配給 - 它是隻讀的」。當我檢查網格的只讀屬性和列時,它被設置爲「false」。請幫我解決一下這個。

+0

如何在點擊行下方添加行?當你添加新的Row時,你可以簡單地將Flags屬性設置爲空字符串嗎? – 2013-05-02 05:17:46

+0

我無法在最後一個位置添加單擊的行下添加行,我不知道Flags屬性。 – Arti 2013-05-02 05:26:48

+0

你能告訴我們一些代碼來說明如何填充dataGridView1嗎? – 2013-05-02 05:39:46

回答

2

要隱藏一列爲什麼不直接設置Visible屬性的列?

dataGridView1.Columns[col].Visible = false 

我使用的最後一行隱藏下一行0列。

看起來像你期望隱藏一個單元格,你的代碼將無法正常工作。 MSDN 屬性DataGridViewCell是隻讀的。

順便說一句,要隱藏一個單元格,您可以通過更改單元格Style來解決這個問題。設置Forecolor和背景顏色具有相同的顏色,並設置ReadOnly = true以防止編輯。

希望得到這個幫助。

+0

這個問題是關於Winforms而不是Asp.net – 2013-05-02 05:12:19

+0

@Jacob Seleznev:我已經更新了我的答案。 – 2013-05-02 07:23:07