• ベストアンサー

フォームロード時にアンロード。

VBでフォームロード時に、ある条件のときだけ、 自フォームをアンロードするプログラムを作りたいのですが、 form_load プロシージャにunload Me と書くと、 どうしても、一瞬フォームが表示されます。 フォームを表示せずにアンロードする方法は ないのでしょうか? よろしくお願いします。

  • lmi
  • お礼率17% (17/95)

質問者が選んだベストアンサー

  • ベストアンサー
  • hershe
  • ベストアンサー率55% (5/9)
回答No.3

こんにちわ。hersheと申します。 その画面が、最初に表示される画面とかでしたら標準モジュールを用意して Sub Main()から起動するようにしたらいかがでしょうか? Sub Main()   If [起動するならば] Then     Form1.Show   End If End Sub とか。

その他の回答 (2)

  • sha-girl
  • ベストアンサー率52% (430/816)
回答No.2

フォームの初期状態をvisible=falseにしておいて、 ある条件でないときにvisible=trueにしてやればどうでしょうか?

  • MovingWalk
  • ベストアンサー率43% (2233/5098)
回答No.1

form_initializeではどうなんでしょうか?

関連するQ&A

  • フォームロードについて

    VB2008で、Form_Load()に Me.Visible = falseや Me.Close()としてもフォームの非表示やフォームを閉じたりしないのですが、なぜなのでしょうか? 最初に起動した場合に、Form_Loadで初期設定を行った後に、自動的に直ぐにフォームを非表示や閉じることをしたいです。

  • 別フォームの呼び出し

    6.0でやってます。 form1からform2を呼び出す時、Command1_Clickの処理内で Set FORM = New form2 Call FORM.Show と書いて、form2が呼び出されたらYesNoメッセージボックスを表示し、 Yesを押したらform1のPublicプロシージャに飛んでからform2をUnloadし、Noだったらform2をUnloadするプログラムを作りたいのですが、クリックするとform2が表示されずに、メッセージボックスだけが表示されて、YesNoを選択した後でform2が表示されてしまいます。 それに、Call FORM.Showの処理に行くと、"既にアンロードされています"といったエラーが出ます。 書く順番がおかしいのでしょうか? *****form1のコード******* Private Sub Command1_Click() Set FORM = New form2 Call FORM.Show End Sub Public sub aaa() (処理) End Sub *****form2のコード****** Private Sub Form_Load() msg = MsgBox("戻りますか??", 4, "確認メッセージ") If msg = vbYes Then Form1.aaa Unload Me Else Unload Me End If

  • プログラム終了時のデータ送信処理@VB6

    プログラム終了時のデータ送信処理@VB6 複数のフォームがあり(A-Z)プログラム終了の際はどのフォームがアクティブであっても、 かならずフォームAをアンロードするようにプログラムされています。 フォームAにはWinsockコントロールが2個使われておりフォームがアンロード(UnloadまたはUnloadQuery)される際には相手先にCLOSEとDISCONNECTを送信するようにくみます。 このときに、 送信コマンドをForm_QueryUnloadイベントに組み込んだところデータが送れませんでした。 もちろんForm_Unloadでも送れませんでした。 アンロード時にデータを送信するにはどうすればよろしいでしょうか? ご助力お願いします

  • VB.Netのフォームロードイベントについて

    こんにちわ。 いまVB.Net2005Expressで勉強をしている者です。 あるフォームがロードされるときの処理を書こうとすると, 従来のVB6ではFormオブジェクトにLoadイベントがありましたが, VB.Net2005では,最初の状態ではフォームのイベントには 「New」,「Finalize」,「InitializeComponent」の3つしかありません。 もしVB.Net2005でForm_Loadイベントを書きたいときは, 自分で, 「Private Sub Form1_Load(Byval ~」と書かなくてはいけないのでしょうか? 初歩的な質問になるかもしれませんが,教えてください。 よろしくお願いします。

  • [VB6] フォームを閉じる方法について

    お世話になります。 VB6で別フォームを起動する際の親フォームの閉じ方について 質問させてください。 呼び出し元フォームからShowメソッドで別フォームを起動すると、 呼び出し先のフォームでマウスのカーソルが砂時計表示になってしまいます。 (呼び出し元のフォームはUnload Meで閉じています。) [Form1の処理] Private Sub Button1_Click() Form2.Show Unload Me End Sub ※Form1は呼び出し元。Form2は呼び出し先。 原因について、どなたかご存知の方がいらっしゃいましたら、 ご教授願えますか?

  • VB2005で、フォームを初期化したいのですが、教えてください。

    VB2005で、フォームを初期化したいのですが、教えてください。 VB2005で、フォームにデータベース内容(ORACLE)を表示するプログラムを作っています。その際、F8キーを押すと画面内容(テキストボックスやDatagridviewの編集内容)を初期ロード状態に戻すようにしたいと思い、F8キー押下時のイベントに、以下のようにプログラムしました。 dim frm as form frm = new form1 me.close frm.show() としてみましたが、me.closeで、プログラムが終了してしまうようです。 どうするのが適切かお教えください。

  • VB2010 フォームのリロード

    今までVB6.0でプログラミングをしていた者で、最近VB2010に開発環境を変えました。さっそくソフトを開発しているのですが、フォームのリロードが必要なところがあったためそこのプログラムをネットなどで参考にして書いてみたのですがどうしてもエラーがでます。 今までVB6.0ではその部分を Private Sub Command1_Click() Set Form1 = Nothing Call Unload(Me) Form1.Show End Sub と、記載していました。これをVB2010のコードに書き換えるとどのようになるのでしょうか。 ご回答よろしくお願いいたします。

  • .netframeworkで作成したフォーム1のイベントで、フォーム2を表示させたいのですが…

    ものすごく説明しにくいのですが、以下のプログラムを実行すると 「Form2識別子がクラス名でも名前空間名でもありません。」 と、エラーが表示されてしまいます。 クラスが違うからなのでしょうか?何か方法は無いのでしょうか・・・。 何か分かることがあったらよろしくお願いいたしますm(_ _)m private: System::Void Form1_Load(System::Object * sender, System::EventArgs * e) {//フォームロード Form2::Show(); }

  • VBでのフォームのロード

    こんにちは。 フォームを表示する際に、Form_Loadイベント内で色々処理をさせています。 私としては、その処理が終了した時点で画面が表示される、と思っていたのですが、画面が表示される際に、枠だけの半透明?のような感じのウィンドウが数秒表示されてから、通常の画面が表示されます。 Form_Load内の処理自体が重いのだと思い、以前別の質問をさせて頂いた際に教えていただいたDoEventsを、重そうな部分に挿入して試しているのですが直りません。 またInitializeイベント内で処理をしても同じようになります・・・ 何か対処法はありますでしょうか? よろしくお願いします。

  • フォームを画面のど真ん中に表示させたいのですが

    フォームを画面のど真ん中に表示させたいのですが、 http://dobon.net/vb/dotnet/form/startposition.html を見たのですがコードの書き方がよくわかりません。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Dim f As New Form1() 'フォームを画面の真ん中に表示する f.StartPosition = FormStartPosition.CenterScreenf.Show() End Sub End Class こうすると、「FormStartPosition.CenterScreenf」の部分に波線がひかれます。 Public Class Form1 Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.StartPosition = FormStartPosition.Manual Me.Location = New Point(0, 0) End Sub End Class これで左は時に表示する事は出来るのですが、真ん中に表示させるにはどうすればいいでしょうか?