0

このリンク「 http://i.stack.imgur.com/DgwaD.png 」に示されているように、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」に設定されています。これで私を助けてください。

4

1 に答える 1

2

Visible列を非表示にするには、列のプロパティを直接設定しないのはなぜですか?

dataGridView1.Columns[col].Visible = false

最後の行を使用して、次の行の列 0 を非表示にしています。

非表示のセルを期待しているように見えますが、コードは機能しません。MSDNVisibleプロパティDataGridViewCellは読み取り専用です。

ところで、セルを非表示にするには、セルを変更することで回避できますStyle。前景色と背景色を同じ色に設定ReadOnly = trueし、編集できないように設定します。

この助けを願っています。

于 2013-05-02T04:41:59.320 に答える