DataGridView に ComboboxColumnを2つ追加し、1列目のコンボの値が変更されたら2列目のコンボのリストを再作成する…
みたいな処理を作ったところ、新規行の1列目のコンボボックスをプルダウンした段階で、コンボ内の背景色が黒くなる現象に遭遇した。
2列目のコンボのリストを再作成するので、1列目にdataGridView_EditingControlShowingイベントを追加し、
その中でdataGridViewComboBox_SelectedIndexChangedとかっつってイベントを発生させて、
dataGridViewComboBox_SelectedIndexChanged()の中で2列目のリストを再作成していた。
このとき、dataGridViewComboBox_SelectedIndexChangedの中で、直接dataGridView.Rows[0]~とかってやると、この現象が出るらしい。
ちょうど同じ現象の書き込みが。。。
参考サイト:http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=36436&forum=7
で、
DataGridViewComboBoxEditingControl cb = (DataGridViewComboBoxEditingControl)sender;
DataGridView grid = cb.EditingControlDataGridView;
+カレントセルの内容を取得するときは、必ず
cb.EditingControlFormattedValue
ってする。
cb.EditingControlFormattedValue じゃない方法で取得すると、相変わらず背景黒で表示されちゃうので注意。
てか、これバグでしょーよ。
0 件のコメント:
コメントを投稿