我有一个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”。请帮帮我。
答案 0 :(得分:2)
要隐藏列,为什么不直接设置列的Visible
属性?
dataGridView1.Columns[col].Visible = false
我正在使用最后一行来隐藏下一行的第0列。
看起来你希望隐藏一个单元格而你的代码不起作用。来自MSDN的Visible
DataGridViewCell
属性是只读的。
顺便说一句,要隐藏一个单元格,你可以通过改变单元格的Style
来解决这个问题。设置Forecolor和背景颜色具有相同的颜色并设置ReadOnly = true
以防止编辑。
希望得到这个帮助。