VisualBasic 2005でForm2を非表示で起動する方法

このQ&Aのポイント
  • VisualBasic 2005でプログラミングの学習中に、Form2を非表示で起動する方法について疑問があります。
  • Form1のButton1_ClickイベントでForm2をモーダル表示させた後、Form2を非表示にしたいです。
  • 現在のコードではForm2が表示されてしまいますので、非表示でForm2のLoadイベントを実行する方法を教えてください。
回答を見る
  • ベストアンサー

VisualBasic 2005 にてプログラミングの学習をしていて、

VisualBasic 2005 にてプログラミングの学習をしていて、疑問に思った点がありましたので質問させて頂きました。 Form1とForm2を作成しています。 その時にForm2を非表示で起動したいと考えた(Form2_Loadイベントを実行したい)のですが、 Form2を非表示で起動させる事が出来ません。 <Form1側 Button1_Click> 'モーダル表示 Dim frm2 As New Form2 frm2.ShowDialog() <Form2_Load> '非表示 Me.Visible = False 上記コードだと、Form2が表示されてしまいます。 これを非表示でLoadイベントを実行させる方法をご存知の方がいらっしゃれば教えて頂きたい と思います。 初歩的な質問で申し訳ないのですが、よろしくお願いいたします。

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

  • ベストアンサー
回答No.1

"非表示で実行" って? Dim frm2 As New Form2 て時点ですでに Form2 は Load されてるんだが。 <Form1 の Button1_Click> Dim frm2 As New Form2 MessageBox.Show(frm2.Label1.Text) で Form2 の Label2 に設定されているテキストを取得できる。

関連するQ&A

  • VisualBasic 2005 にてプログラミングをしているのですが

    VisualBasic 2005 にてプログラミングをしているのですが、 Form1とForm2を用意して、スタートアップフォームはForm1に指定しています。 Form1が起動した時に、Form2も非表示状態で起動させる事は可能なのでしょうか? その後、Form1から、Form2の表示、非表示の切り替えを行いたいと考えています。 良い方法をご存知の方がいらっしゃればと思い質問させて頂きました。 よろしくお願いいたします。 以上です。

  • VisualBasic 2005 にてプログラミングの学習をしています

    VisualBasic 2005 にてプログラミングの学習をしています。 以下のようなコードを見かけたのですが、いったいどんな値が代入されるのか 分かりませんでした。自宅に環境が動作させる無いので、どなたか分かる方が いらっしゃればと思い、質問させて頂きます。 <抜粋> Dim hensu1 As Long Dim hensu2 As Long hensu1 = &H40S hensu2 = &H1S

  • VisualBasic 2005 にてプログラミングの学習を行っている

    VisualBasic 2005 にてプログラミングの学習を行っているのですが、 疑問があるので質問させて頂きました。 以下のようなコードで 1 Dim aa As Integer 2 Dim lFlg As Long 3 aa = &H80I 4 Label1.Text = aa.ToString 5 lFlg = aa And &HFFFFFFFFL 6 Label2.Text = aa.ToString 5行目の「And &HFFFFFFFFL」にて論理積を求めているかと思うのですが、 何故このような処理が必要であるかが、分かりません。 仮に「And &HFFFFFFFFL」の記述が無くても変数「lFlg」には128が入って いました。 理由が分かる方がいらっしゃれば教えてもらえると助かります。 以上です。

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

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

  • 【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」の部分のエラーです。 手書きで申し訳ありませんが、書きたいプログラムの参考画像も載せておきます。 数日前より調べては試し調べては試しと試行錯誤していますが、 正直手詰まりになっており、非常に困っております。 この他にも、フォーム間で命令を出しあいたい場面が多々あるのですが、 プロパティを変える程度のコードでつまずいていて、先に進めません。 手直しした簡単なサンプルコードを書いて頂けると非常に助かります。 以上、何卒よろしくお願い致します。

  • Formオブジェクトについて

    Formオブジェクトに関する質問です。 ある関数にフォームオブジェクトを引数として渡してやりたいのですが、何かよい方法はありますでしょうか? 例) Private Sub cmdTest_Click(Index as Integer) Dim frm as Form If Index = 0 then Load_Test(Form 2) Else Load_Test(Form 3) End if End Sub Private Sub Load_Test(frm as Form) frm.Show frm.Label1.Caption = "TEST” End Sub

  • Form1.vbをイベントなしで動作させるには?

    VB2005初心者で困っています。 Menu.vbとForm1.vb, Form2vb, Form3.vb・・・を作り、Menu.vbのButton1_ClickでForm1.Show()としてForm1.vbに移行し、次にForm1のButton1_clickイベントでExcelからDataを読み込んでGraphを書かせています。(この時は問題なく動作しています) これを、Form1に移行したらすぐにGraphを表示しようとして、Form1.vbの Public Class Form1 Private Sub Button_Clic(Byval sender As System・・・・・)Handles Button1.click   Dim g As Graphics   ・・・・ を変更して、  Private Sub Form1_Load(Byval sender As System・・・・)Handles MyBase.load Me.Show() Dim g As Graphics   ・・・・ と、しましたが、一瞬Graphは表示しますが、すぐに消えます。 また、罫線はまったく表示しません。 Button_ClickイベントなしでForm1を動かすにはどうすればよいのでしょうか?

  • C# 2010 printPreviewDialogの消去法

    C# 2010 printPreviewDialogの消去法 印刷プレビューのダイアログを表示して左上のプリンタ釦を押下して印刷します 印刷が完了してもダイアログは表示され続けています この状態でもう一度ボタン1を押すと(1)のところで下記のエラーが起こります 『既に表示されているフォームをモーダルダイアログボックスとして表示出来ません。showDialogを呼び出す前に、フォームのVisibleプロパティをfalse にしてください』 素直な私は(1)の前に this.printPreviewDialog1.Visible = false; を加筆して再度実行したのですが 『既にモーダルに表示されているフォームはモーダル ダイアログ ボックスとして表示できません。showDialog を呼び出す前に、フォームを閉じてください。』 とのエラーになりました フォームを閉じろといわれても printPreviewDialog1.ShowDialog(); から戻ってきません。(2)が表示されないのです。 private void button1_Click(object sender, EventArgs e) { this.printPreviewDialog1.Document = this.printDocument1; printPreviewDialog1.ShowDialog(); -----(1) MessageBox.Show("printPreviewDialog End"); ----(2) } A どうしたら戻ってくるのでしょうか? B もし戻って来ないならどのようにすれば良いのでしょうか? 更に一般的にはどのように処理しているのですか? 基礎学力の欠如している私をお助けください

  • [VB]親画面と子画面の画面サイズ最小化について

    VB2012でwindowsアプリの開発を行っております。 親フォームから子フォームをShowDialogで起動する画面があるのですが、 親フォームを最小化して、子フォームは通常サイズで表示させたいです。 以下のコードを実行すると、親と子の両画面が最小化されてしまいます。 どなたかご教授頂くと助かります。宜しくお願い致します。 ----------コード-------------- Private Sub 子フォーム起動_Click Me.WindowState = FormWindowState.Minimized Dim frm As New 子フォーム frm.ShowDialog(Me) frm.Dispose() End Sub

  • アプリケーションのプロセス監視について

    VisualBasic.netでフォーム(Form1)を作成、Visible=Falseで隠した後、タスクトレイにアイコンを表示させるプログラムを作っています。以前の質問に、プロセス監視をするとexeが軽くなるとあるんですが、理屈がわかりません。どうしてexeが軽くなるんでしょうか? よろしくお願いします。