|
分類:[C#]
お世話になってます。 ドラック&ドロップに関してご質問があり、書き込みさせていただきました。
現在、XP、サービスパック3、VC#2005、.NET Framework2.0の環境でwindowsのエクスプローラーに 似たものを作っています。(左側にtreeView、右側にListViewという感じです)
質問というのは、ドラック&ドロップ時の事です。
ドラック&ドロップで、ListViewからtreeView側にドラックし、 ドラック中にtreeViewの項目(Node)にマウスを当てるとその項目(Node)が 選択され、フォーカスがあたるようになっています。 また、ここで、ListViewからドラックするときに、ListViewで選択していた項目の情報を カーソルと一緒にドラックするようになっています。 (選択していた項目の情報は、BitmapクラスとGraphicsクラスを使って透過した物を作りました。 実際にエクスプローラーでドラックしたときにできるようなものです)
これで実際にListViewからtreeViewにドラックして、マウスをtreeViewの項目に当てます。 そして、他の項目にずらします。すると、ドラックで持ってきていた透過されている情報 とtreeViewのフォーカスがあたっていた部分が重なっていると、項目をずらした後もそこだけフォーカスがあたっていたときの ように跡が残ってしまいます。 treeViewのrefresh()などを用いて見ましたが、使う前よりましになった程度でまだ跡が残ってしまう部分が あります。refresh()を使うと当然、treeViewで項目をずらすと画面が点滅します。
文章で説明するのがかなり難しいので、うまく伝わらないかもしれませんが、 どなたか解決案やご意見をいただけると助かります。
すみませんが、よろしくお願いします。
|