人生最悪の忘れ物

VB.NET、WinXPなのですが、
form1のボタンを押して、指定のフォルダを開いた後に
再度そのボタンのあるform1を最前面に表示したいのですが、
 System.Diagnostics.Process.Start("C:\WINDOWS")
 Me.Activate()
などとしてファイルがたくさんあるフォルダを開くと完了まで時間がかかり
次のMe.Activate()の命令が無視されてしまうようで
form1がアクティブにならないまま終わってしまいます。

少し待機しようと
 System.Diagnostics.Process.Start("C:\WINDOWS")
 System.Threading.Thread.Sleep(500)
 Me.Activate()
とすると正常に開くのですが、ファイルが少なくても
高速なマシンでも一律0.5秒停止してしまうのではなく、
表示が完了されているかどうかを判定するようにしたいのですが、

 Dim P As Object
P = CreateObject("Shell.application")
P.open("c:\windows")
 Do While P.Busy = True : Loop

などのように待機する方法があったら教えて頂きたいです。↑はエラーになってしまいました。

フォルダを開くコードを
 CreateObject("Shell.Application").Open("C:\WINDOWS")
に置き換えてみたり、
 Me.Focus()やMe.show()

などを試してみたのですが、うまくいきませんでした。
毎回申し訳ありませんが、よろしくお願いいたします。

A 回答 (1件)

Me.TopMost = True


'何かの処理

でいかがでしょう。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
早速こちらの方法でやってみることにします。

お礼日時:2005/11/13 00:17

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報