DataGridViewComboBoxColumn を使用した DataGridView の UI 更新に問題があります。DataGridViewComboBoxColumnCell の値を設定すると機能しますが、UI は更新されません。
コントロールでInvalidate()、Refresh()を試しました。フォーカスを与えてから、フォーカスを別のコントロールに切り替えます。ボタンイベントで同じループを使用すると機能します。
これまでの私のコード:
BindingList<String> list = new BindingList<String>();
list.Add("Value1");
list.Add("Value2");
DataTable table = new DataTable();
DataColumn col = table.Columns.Add();
col.ColumnName = "Key";
col.DataType = typeof(String);
dataGridView1.DataSource = table;
table.Rows.Add("Key1");
table.Rows.Add("Key2");
DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn();
combo.DataSource = list;
combo.Name = "Value";
dataGridView1.Columns.Add(combo);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
row.Cells["Value"].Value = "Value1";
}
2 つの ZedGraphControls で同様の動作がありました。従属ズームを実装しましたが、両方のコントロールで最初に手動でズームしたときにのみプロットでスケールが変更されました。たとえば、列幅を手動で変更し、メソッドが再度呼び出されて UI が更新されると、DataGridView でも同じことが起こります。