*

[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

ねむっ!

眠いっす。なんか今週睡眠時間すくないっす。みんなドリカスのせいです。ついに3台同時(aptivaノー

記事を読む

no image

暇だ。

秋田から実況生中継な日記です。1日&2日は俺以外の家族は全員、仕事や学校に行ってしまい昼間何もするこ

記事を読む

no image

テンション

仕事場にて。職場の人らと毎日昼飯を一緒に食ってます。1人で食うよりは多分うまいんでしょう。食うこと自

記事を読む

no image

携帯を買おうと思うんだ(追記)

俺の携帯様、W-ZERO3がぶっ壊れて3週間くらい経過しました。 ようやく直ってきたのですが、

記事を読む

no image

iPhoneとか

発売したばかりでは買う気になれず様子見。 キラーアプリとか出たら買うかも知んない。

記事を読む

no image

残業狂

残業だらけです。流石日本の師走です。僕の実家のサンフランシスコではこんなに忙しくはn。・゚・(Д`(

記事を読む

no image

うきうきラピュー太

ラピュータ絶好調?かな?昨日の宣言通りにラピュータ用プログラムを1本作って見ました! (。・_・。)

記事を読む

no image

健康的過ぎる…

今日は…わし健康的過ぎますよ?昨日寝たのが三時で起きたのが九時。睡眠時間6時間ですよ?健康的じゃぁあ

記事を読む

no image

タイグラマー22日目(飯)

しばらくこんなタイトル続きます。サボった分。 この日の昼ごはん。今日も食堂です。 昨日発

記事を読む

no image

まんざらでもない

月曜日で既に疲れ気味なhiroseaです。えー今日は会社のPCのセットアップで1日を消化しました。O

記事を読む

SSDを換装した感想。

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

秋田市で散髪。

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

炭酸水禁止令

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

光回線引いたった!

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

no image
久方ぶりになんか書く

友人が2人、我が由利本荘市を脱藩した記念。 あー休日に遊ぶ相手が

→もっと見る

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

PAGE TOP ↑