許せない心理テスト

現在VB2008をのんびり勉強中のものです。
ふと疑問に思ったのですが、VB6時代では
Load フォーム名
で、対象フォームのLoadイベントのみを発生させることができました。

これだと、見た目上フォームを表示せずにLoadイベントを発生させることができました。

同様のことをVB2008でもやってみようと思ったのですが、
フォーム名 = New Form
で初期化。
Loadだけを読み込もう・・・・あれ?フォーム先のイベントを何か発生させないとLoadされないぞ!?
っていうことに気付きました。

フォーム名.showだとフォームが表示されてしまうし・・・
とりあえずshowで表示させた後、すぐにhideで隠してしまえばいいのですが、もっとスリムなやり方はありますでしょうか???

A 回答 (2件)

Form の Load イベントでなく、Public Sub New() を使用するとよいと思います。


ちなみに、コードウィンドウの上にある左側のコンボボックスで

(Form イベント)

ではなく、その一つ上の

Form

を選択し、その右のコンボボックスで

New

を選択すると自動的に

Public Sub New()

が作成されます。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

確かにこれだとVB6のLoadイベントと同じような動作を行うことを確認しました。
インスタンス生成時に呼び出されるプロシージャなので、Closeで閉じた後に再度呼び出したときにどのような動作をするのかなどいろいろ試していこうと思います。

お礼日時:2009/12/26 10:23

こんばんは



>showで表示させた後、すぐにhideで隠してしまえばいいのですが
詳細は分かりませんし、VB6とOffice2003のVBAまでしか扱ったことがないのでVB2008がどういう動きをするのか分かりません。

ただ、一つ言えるのは、フォームは何かを表示させたいから使います。
何も表示しなくていいのなら、フォームは要りません。

VB6では起動時に何かを表示させなくてもいいのならば、「標準モジュール」に「Sub Main」を作っておいて、「プロジェクト→○○(vbpのファイル名)のプロパティ」で「スタートアップの設定」で「Sub Main」を指定すればOKです。

p(^^)q
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
VB.NETでは基本的に指定したフォームからロードを開始します
(※Sub Mainが使用できないわけではないのですが、フォームのスタイルが崩れたり、予期しない動作をすることがあるそうです)

今回はフォーム上でなにかしらの視覚的表示処理を行いたかったわけではなく、各ページにおけるオブジェクトの生成と固定テキストのセットなどを行おうかなと思ったのです。

お礼日時:2009/12/26 10:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報