特にグリッドを更新してリスト内の列を動的に構築するときの列の奇妙な動作とその可視性について、 SOで多くの投稿を見てきましたが、満足のいく解決策は見つかりませんでした。
掘り下げた後、この問題はメソッドの使用によるものであるとほぼ確信していますDataGridView.Columns.Clear()
。
これまでのところ、理由を突き止めることはできませんでしたが、DataGridView 列を動的に構築するときに Clear() メソッドを削除すると、非表示の列が表示されなくなりますが、なぜこれが影響するのかわかりませんか? 確かに、Columns コレクションをクリアし、使用DataGridView.Columns.Add()
して新しいコレクションの追加を開始する場合は、次のようにコードします。
dataGridView1.Columns.Clear(); // This is the offending method!!
dataGridView1.AutoGenerateColumns = false;
dataGridView1.ShowEditingIcon = false;
dataGridView1.RowHeadersVisible = false;
DataGridViewTextBoxColumn col = new DataGridViewTextBoxColumn();
col.DataPropertyName = "ID";
col.HeaderText = "ID";
col.Visible = false; // Notice the visibility of this column...
dataGridView1.Columns.Add(col);
... // Code is repeated for other columns in the collection
何も問題はありませんがdataGridView1.Columns.Clear();
、最初に が含まれている場合、非表示の列が表示されます。これはバグですか?