*

[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

月曜日からうんこヘビーな件

お疲れさまです。 月曜日から家についたら日付が変わっているような務めっぷりです。 ことの発端

記事を読む

no image

飯つくり

先日、県民に言われた飯を作ってみた。 食材: 完成図: ポン酢が( ゚

記事を読む

no image

液晶買うところ決定。

結構前に液晶ディスプレイ買うためにいろいろな通販にメールを飛ばしたんですが今日になってようやくメール

記事を読む

VPS移動しました。

このブログ&tinamini.com、その他友人用のブログなどなど 止めても起こられな

記事を読む

no image

牛飯並盛り

最近、慢性的な牛肉分不足だったので、出張先の松屋で牛飯食ってみたら翌日親戚宅で牛肉焼いたの食わせてく

記事を読む

no image

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

写真1枚ですた。飯クエ>俺 日清カップヌードルカレー味+ミロ。 このあと、カレー

記事を読む

no image

カナダドライ SAKURA MIST

コンビニで新商品を見つけたので速攻買いました。 カナダドライ SAKURA MIS

記事を読む

no image

駄目人間育成環境構築方法

来週は会社から受けろーと言われている資格の試験があるので勉強して・・・・・ませんねっ!!!土曜日に団

記事を読む

no image

久々チャリ

今日は朝、エライ体調悪くて、会社休みました。 午前だけ有給休暇使う手もあったんですが、午後

記事を読む

no image

昨日分

昨日は絶好調に寝ました。就寝時間が11時!睡眠時間が7時間!コリャ健康だ!つーことで仕事します。会社

記事を読む

no image
GitHub Desktop の日本語化を諦めた話

GitをCUIで使うのがかったるいので、なにかいいGUIなソフトが無い

クラウドワークスの「全てのメッセージを開く」が消えた件。

お疲れさまです。 クラウドワークスを使ってお仕事をしている方、い

脱毛器を買い申した

突然ですが、脱毛器を買いました。 トリア・パーソナルレーザー脱毛

去年の体重の推移

あけおめ!ことよろ! 新年早々特にネタもないので無理やりひねり出

招き猫 G-SHOCK

腕時計は営業ツールもしくは換金アイテムとしか思っていない俺です。

→もっと見る

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

PAGE TOP ↑