*

[VB6] OnShowイベントの作成

公開日: : 未分類

VB6のではフォームを開いた瞬間を捕らえるイベントが無い。
Form_OnLoadがあるじゃ無いかと言うかもしれませんがアレは違う。

VB6でフォームを呼び出す、閉じるにはいくつかの段階がある。
1、フォームをメモリーに読み込む。
2、フォームの値を操作する。
3、フォームをディスプレイ上に表示する。
4、フォームをディスプレイ上から隠す。
5、フォームをメモリーから消す。
6、プログラムを終了する。

これらを正確にコードで書くと

Dim frmTmp As Form
Set frmTmp= Form1           '・・・・1
frmTmp.Caption = "てすと中" '・・・・2
Call frmTmp.Show            '・・・・3
Call frmTmp.Hide            '・・・・4
Call Unload(Form1)          '・・・・5


となる。

Form_Onloadイベントは 2の時に走るものであって、ディスプレイの表示された瞬間(Show実行時)に走るものではない。
ちなみにForm_Initialize は1の時、
Form_QueryUnload、Form_Unloadは4の時に走り、Form_QueryUnloadの方が先。
Form_Terminate は、プログラム終了時に呼び出される。

プログラムをしているとどうしても3の時、つまりShowの瞬間に呼び出したい関数と言うものがでてくる。
こうした場合には下記の方法を提案する。

まずフォームの対し、PrivateなBool値を用意する。(仮にBlnFlg1とする)
そして、Onloadイベント時に BlnFlg1 をFalseに設定する処理を書き、
Form_Resizeイベントの先頭に下記のコードを追加する。

If Not(BlnFlg1) Then
  BlnFlg1 = True
  Call 呼び出したい関数
End If

Call 呼び出したい関数 の個所は各々好きなように変更する。
関数でなくとも処理を直接書いてもよい。

Show実行時に必ずForm_Resizeイベントが実行されるのを利用した技だ。
使ってみると案外使いやすいので是非お勧めしたい。

関連記事

no image

タイグラマー10日目(引きこもり)

1日じゅう部屋で引きこもっていたので余り書くこと無いぞ? 今日は昨日お金使いすぎたので家で引き

記事を読む

no image

今昔

謎日記になっていますので理解できない奴はカエレ。2005/07/09 俺にとっての人生の1つの節目に

記事を読む

no image

マロニエ

マロニエってなんでしょうかね?今日は昨日書いた通りに廃人になってました。寝る事と風呂とゲームだけ…ま

記事を読む

no image

まとめ斬り!

日曜日からいってみよー 12月5日(日) 二日酔いで家でごろごろしていたら親戚からファミレス

記事を読む

no image

復活。

パソコン復帰させたのは昨日なんですが、復帰した時刻が結構遅かったの(夜の2時半)で日記を昨日はサボり

記事を読む

no image

秋田に帰ったら食うもの

食うものリスト。必須項目コンビーフ+卵の卵焼きションビキババヘラサラミ食えたら食うブランデー(XOク

記事を読む

no image

あと一日。

遂にこの日が来たか…いよいよ千葉で過ごすのも明日ラストだ。約一年振りに秋田に帰れる。ああ、そいや隣の

記事を読む

no image

生禿鯖メンテの日

namahage鯖。20日はメンテで止めますのでご容赦ください。誰にも影響ないと思いますが、一応書い

記事を読む

no image

さっと書いてさっと寝る。

ネタ的においしい内容が無かった日でしたので。purigenたん>横浜進出おめでとうございます。ゲーム

記事を読む

no image

…語る気力すらねえ。

ごっつ疲れました。前にBeOS買わないと言ったがよくよく考えたのだ。あの後も。値段5000しかしない

記事を読む

no image
新しいPCの見積り中

お晩です。 今月誕生日で37歳になりました。おーいえー。

SSDを換装した感想。

SSD買いました。 MLCならなんでもよかった。

秋田市で散髪。

3ヶ月ぶりくらいに髪を切りました。秋田市の美容院で。 冬

炭酸水禁止令

本日歯医者さんに行ったのですが、歯医者さんからアドバイスと言う名の食事

光回線引いたった!

おそらく今年最後のblog更新。 今日、光回線の引く工事が完了し

→もっと見る

  • まだデータがありません。

PAGE TOP ↑