|
分類:[.NET 全般]
こんにちは。VB2008で簡易的なツールを作成しています。 さて、重い処理を行う時に、「ただいま処理を行っています」というようなメッセージが書いてあるフォームを 表示させたいのですが、画面の表示がうまくいきません。 例えば、以下のように処理を行っています。 (ここではこのメッセージ用フォームをFormTestとします。)
'処理前にメッセージ用フォームを表示 FormTest.Show() FormTest.Refresh() 'メッセージ用フォーム上のラベル(メッセージが書いてある)を表示させるためにRefreshする。
'ここで重い処理を実行(内容は省略) ・ ・ ・
'処理の完了 FormTest.Close()
最初はこのメッセージ用フォームが正しく表示されるのですが、重い処理を行っている最中、表示されているこの メッセージ用フォームをクリックしたり移動させようとしたりすると、以下のような現象が発生します。 ・メッセージ用フォームの表示がおかしくなってしまいます。 このメッセージ用フォームのControlBoxプロパティはFalseにしているため、最初は長方形のフォームが表示されるのですが、 丸角のControlBox部分(ヘッダ部分・ちなみにこの時に確認したOSはVistaです)が表示されたりして、ラベルの内容が フォームの下に追いやられます。 ・タスクバーにこのメッセージ用フォームの情報が表示されてしまいます。 このメッセージ用フォームのShowInTaskBarプロパティはFalseにしているため、最初はタスクバーにフォームの情報は 表示されないのですが、上記のようにこのメッセージ用フォームの表示がおかしくなると、タスクバーにこのフォームの情報が 表示されてしまいます。
何か対策はあるでしょうか? ご存知の方、よろしくお願いいたします。
|