何故、フォームを開いた時点で表示されないのでしょうか?

解決


とっと  2007-10-02 04:08:05  No: 137665

まったくの初歩的な質問ですみません。
VB6で、Form1.Show 0  にて Form1を開いています。
Form1 は、
 Private Sub Form_Load()
  データを読み込み              --- ①
  その計算                      --- ②
  結果を List1 に表示           --- ③
End Sub
 Private Sub Command1_Click()
  Unload Form1
 End Sub
と言った内容です。
  不思議なのは、何故か、①・② が終了して初めて、リストボックスとコマン
ドボタン の表示、そして同時に ③ となります。
本当は、フォームを開いた時点で、即、リストボックスとコマンドボタンを表示
し、①・② を実行した結果を順番にその都度 ③ の表示をしたいのです。
  何か、基本的に間違っているのでしょうか。
教えてください。お願いします。


KG  2007-10-02 04:37:44  No: 137666

Loadイベントは表示される前のイベントだからだと思いますよ。


まさやん  2007-10-03 10:09:31  No: 137667

あえて、Showメソッドを実行してみるとか…。

Private Sub Form_Load()

  Me.Show vbModeless

  データを読み込み
  その計算
  結果を List1 に表示

End Sub


とっと  2007-10-04 04:34:10  No: 137668

KGさん、まさやんさん  ありがとうございました。
  
  KGさん、Loadイベントは表示される前のイベントとは知りませんでした。
確かに、前段でコマンドボタンで受けますと解決はします。
  まさやんさん、実行してみましたが残念ながら変化はありませんでした。

  メニューから、Form1を直に開き実行したいのです。
この様な使い方は、よく有ると思うのですがそれ以上はよく分かりません。
  他に何か方法が有りましたらよろしくお願いします。


通ってみた  2007-10-04 05:00:01  No: 137669

Form1のTimerイベントにコードを記述すると幸せになれるかもしれません

当然イベント内でTimerのEnableをFalseにすることをお忘れなく


まさやん  2007-10-04 21:39:50  No: 137670

Showメソッドの次に、DoEventsを入れるか…ですね。
Load時の処理が重いのが原因かと思われます。

後は、FormのActivateイベントを使うのも一つの手かもしれません。


とっと  2007-10-05 06:00:31  No: 137671

通ってみたさん、まさやんさん  ありがとうございました。

  教えて頂いたTimerイベントで解決しました。
Timerで時間を稼がなければならないとは思ってもいませんでした。
  DoEventsとActivateも試しましたが今回はうまくいかない様でした。

  お教え頂いた皆さん、本当にありがとうございました。


通ってみた  2007-10-06 16:21:17  No: 137672

>Load時の処理が重いのが原因かと思われます。

どんなにLoadイベント内の処理が軽くてもLoadイベント中にフォームは表示されません
KGさんも仰ってますが、Loadイベントを抜けてはじめてフォームが表示されるからです


とっと  2007-10-10 02:58:35  No: 137673

通ってみたさん  ありがとうございました。
その後、順調に動いています。
まだまだ、分からないことばかりですので今後ともよろしくお願いします。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加