0

我有一个 DataGridView ,如此链接“ http://i.stack.imgur.com/DgwaD.png ”所示。

标志列中图像的 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”。请帮我解决一下这个。

4

1 回答 1

2

要隐藏列,为什么不Visible直接设置列的属性?

dataGridView1.Columns[col].Visible = false

我正在使用最后一行来隐藏下一行的第 0 列。

看起来您希望隐藏一个单元格,您的代码将无法正常工作。从MSDNVisible属性DataGridViewCell是只读的。

顺便说一句,要隐藏一个单元格,您可以通过更改Style单元格来解决。设置前景色和背景色具有相同的颜色并设置ReadOnly = true为防止编辑。

希望这有帮助。

于 2013-05-02T04:41:59.320 回答