• ベストアンサー

フォームロードについて

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

  • roox2
  • お礼率1% (1/79)

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

  • ベストアンサー
  • redfox63
  • ベストアンサー率71% (1325/1856)
回答No.1

FormのShownイベントで Closeの実行やVisible=Falseの設定を行ってみましょう アプリケーションの設定によっては最初に開いたフォームが閉じられるとアプリが終了してしまいます 終了させたくない場合は設定の変更をしましょう

関連するQ&A

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

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

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

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

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

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

  • フォームを正しく最前面にする方法は?

    VB6(SP4)をWin2000で使用しています。(下記問題はWinMeでも生じます) フォームを一度消した後、処理をして、処理の終了後、再度表示すると最前面にならずに、タスクバー上のボタンやフォームのタイトルバーが点滅するだけになってしまいます。どのようにすれば、ちゃんと最前面になるのでしょうか? プログラムの内容は Private Sub Command1_Click()   Me.Visible = False   ※処理(他のAPを起動し、そのAPが終了するまで待機する)   Me.Visible = True   Me.SetFocus End Sub よろしくお願いします。

  • vb.net 2008にて、アプリ起動時にフォームを非表示にする方法をお教えください。

    dim str as string dim f1 as new form1(str) f1.showdaialog() 上記のように変数を伴って別フォームより、非表示で起動したいフォームを呼び出しております。 vb.netではアプリのロードイベントにて、me.visible =false 等で非表示にできないことをしりました。 そこで、http://dobon.net/vb/dotnet/form/hideformwithtrayicon.htmlを参考にいろいろと試してみましたがだめでした。 フォームを宣言する際、引数を必要としている作りであるため、上記URLの パラメータを指定せずにApplication.Runを呼び出す方法が使えないため、 フォーム最小化、タスクバー非表示の方法を用いてみると、アプリが終了してしまいました。 次に、タイマーを使い、me.visible= falseとすると、その場合もアプリが終了してしまいました。 また、タイマーイベント内にて、フォーム最小化、タスクバー非表示の方法を試してみても、アプリが終了する結果となりました。 フォームがウィンドウ画面から確認できない状態になるとアプリが終了する仕様になってしまったのでしょうか。 また、この現象を回避し、起動時にフォームを非表示にする方法があればお教えください。

  • フォームの移動でのイベント

    お世話になっております よろしくお願いします。 WindowsXP SP3 office2000 を使っています テーブルに2つのデータがり それをフォームで表示しています 表示した際に下のほうにページ移動の黒い三角のマークがあると思うのですが そのページを移動をしたときに発生するイベントはないのでしょうか? データによってラベルを表示・非表示をしたいのですが 最初に非表示になると次からは非表示のままです Private Sub Form_Load() If me.フィールド名 = 0 Then me.フィールド名.Visible = False End If これをどこに書いたらページごとに実行できるのでしょうか? 以上よろしくお願いします。

  • 【VB.net】フォーム間でのやり取りについて

    先日、同じような質問をさせて頂いたのですが、 解決に至らなかったため、もう少し質問内容を工夫しますので、再度質問させてください。 ・実行したいプログラム フォーム1のボタン1をクリックすると、フォーム2を開くと同時にフォーム2ボタン1がvisible=Trueになる。 フォーム1のボタン2をクリックすると、フォーム2を開くと同時にフォーム2のボタン1がvisible=Falseになり、ボタン2がvisible=Trueになる。 ・書いたコード ---------------- Public Class Form1 Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click Dim f As New Form2 f.Owner = Me f.Show() DirectCast(Me.Owner, Form2).Button1.Visible = True DirectCast(Me.Owner, Form2).Button2.Visible = False End Sub Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click Dim f As New Form2 f.Owner = Me f.Show() DirectCast(Me.Owner, Form2).Button1.Visible = False DirectCast(Me.Owner, Form2).Button2.Visible = True End Sub End class ---------------- ・問題点 「nullreferenceexceptionはハンドルされませんでした オブジェクト参照がオブジェクト インスタンスに設定されていません。」 というエラーが発生します。 「DirectCast(Me.Owner, Form2).Button1.Visible = True」の部分のエラーです。 手書きで申し訳ありませんが、書きたいプログラムの参考画像も載せておきます。 数日前より調べては試し調べては試しと試行錯誤していますが、 正直手詰まりになっており、非常に困っております。 この他にも、フォーム間で命令を出しあいたい場面が多々あるのですが、 プロパティを変える程度のコードでつまずいていて、先に進めません。 手直しした簡単なサンプルコードを書いて頂けると非常に助かります。 以上、何卒よろしくお願い致します。

  • フォームの切り替え

    VB2008です フォーム1で必要事項を入力して『OK』をすると フォーム2を表示して(フォーム1を閉じる)入力→『OK』をするとフォーム3が表示(フォーム2を閉じる)… と処理を順々にしたいのですが コードで Form2.Show Me.close ←フォーム1のこと としてもプログラムが終了してしまいます どのような処理をしたらよいのでしょうか? ご教授お願いします

  • 実行時に現れるフォームの変更の仕方について

    掲題の件について質問なんですが、 複数のフォームを作った場合、 実行時に最初に現れるフォームを変更するにはどうしたらよいのでしょうか? 最初に作ったフォームの初期値のVisibleをfalseにして、後から作ったフォームの同初期値をtrueにしたところフォームが現れなくなってしまいました。 よろしくお願いします。

  • フォームの存在をチェックする方法

    みなさんこんばんわです。よろしくお願いします。 VB.NET 2008で開発をしています。フォームについて、どうしてもわからない点がありますのでお伺いいたします。 Form1、Form2があるとします。 Form1.Visible = False とすれば、Form1のインスタンスは残ったまま、非表示なだけです。一方、 Form1.Close() Form1.Dispose() とすれば、Form1は完全にメモリ上から解放されています。つまり、Form1上のコントロールから値を取得しようとするとエラーになりますよね。 つまり、上記の二つのケースをForm2から判断したいのですが、そのコードが分からないんです。Form2のコードで、Form1のインスタンスが存在するかどうか、つまり、Form1上のコントロールの値を参照することができるかどうかを知りたいんです。 具体的には、実際のイメージはForm3まであって、Form1が不可視で生きていれば、Form1上のコントロールの値を参照し、Form2が不可視で生きていれば、Form1は無視してForm2上のコントロールの値を参照するという具合です。 ちなみに、 If Form1.Visible = False Then Debug.Print("生きてます") のコードでは、Form1のインスタンスがメモリ上にあってもなくても、不可視であれば、同じ値を返すことがわかり、役に立ちません。 ご存じの方がいらっしゃいましたら、たいへんお手数をおかけしますが、どうぞよろしくお願い申し上げます。 ありがとうございました。

専門家に質問してみよう