- ベストアンサー
Form_LoadでDB接続ではなく、Form_Load完了でDB接続したい
VB.NETです。 現在、Form_LoadにDB接続のコードを記述していますが、Form_Load完了後に、DB接続の命令を実行することはできますでしょうか? つまり、Form_Loadが完了したら、DB接続のコードが実行されるようにしたいのです。 理由は、DB接続に時間がかかる場合、Form_Loadによる画面がなかなか出てこない。 また、DB接続エラーとなった場合、Form_Loadによる画面が出る前に、エラーメッセージがポップアップされてしまう。 これらを回避したいのです。 良い方法ご存知の方がいましたら、ご教授下さいませ。 よろしくお願い致します。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは、じゃんぬねっと です。 Activate イベントは、TopMost にしていると、 FormLoad イベントより先に発生することがあり、お勧めできません。 フラグも必要になりますし。 > DB接続に時間がかかる場合、Form_Loadによる画面がなかなか出てこない。 非同期に実行しては如何でしょう? スレッドを使用するとか。 また、別の画面を表示しておく手もあります。
その他の回答 (1)
- todo36
- ベストアンサー率58% (728/1234)
Form.Activatedイベント
補足
ご回答ありがとうございました。 以下のような感じで実現しますか? ちょっと組み込んでMsgBoxでテストしてみたのですが、何も動作しなかったようでした。 ------------------------------------------ Private Sub Form1_Activated(ByVal sender As Object, ByVal e As EventArgs) RemoveHandler Form1.Activated, AddressOf Form1_Activated MsgBox("動作しました") End Sub
お礼
毎度のありがとうございます。 その後、スレッドで自己解決に至りました。 ちなみに、以下の感じで実現できました。 ------------------------------------- Public Thread As New System.Threading.Thread(AddressOf DB_Connection_ON) Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load ・ ・ ・ Thread.Start() End Sub Private Sub DB_Connection_ON() ・ ・ ・ Thread.Abort() End Sub