読者です 読者をやめる 読者になる 読者になる

え〜と、MDIの子フォーム、何故かとある一つのフォームだけMessageBoxを表示するとメインフォームの裏側に隠れちゃうという症状があって、子フォームや親フォームをクリックしてもなんも操作が通らないんだけどその状態でAltを押すとダイアログが最前面に出てくるという謎の状態。
MessageBoxのShowで第1引数にMeを指定すると必ずそのZオーダーの前面に出る、とか言う話ですが、試してみても全く解決しませんよと。


‥‥、で、何故か、子フォームが表示された瞬間はダイアログが前面に出てくる‥‥?、とかどうも症状が安定しないので、フォームのあちこちにMessageBoxを表示するコードを埋め込んでみると、どうやら、DataGridViewにDataTableを割り当てて表示を更新した瞬間からMessageBoxの表示がおかしくなる感じ。
で、更に追っていくと、DataGridの特定のセルにコードから直接値を埋め込んだ瞬間表示がおかしくなる感じ。


で、このDataGridView、特定のセルの値によって隣のセルをReadonlyにするかどうかが決まって、Readonlyにした場合は背景色をグレーに、そうでない場合は白にしているんですが、コードからセルの書式を個別変更した場合、DataGridViewをソートすると書式がリセットされるので、ソート後イベントでセル表示の再描画をしているんですが‥‥
なんかセルを編集したとか描画処理した後の表示がやけにチラつくとか妙なのでコードのある部分にブレークポイントを設定してみたら、なんもしていない時に延々そのコードが呼び出されててそんなループ処理書いた覚えはないぞいと思ってイベントハンドラをチェキってみたら‥‥


‥‥‥‥、ナニこの、DataGridView1.RowPrePaintって謎のイベントハンドラ‥‥‥‥