「VB.NET」開いたウィンドウを元のフォームのボタンで閉じるには


ct  2003-06-10 07:06:03  No: 107457

フォームをモードレスで開いた後に子のフォームを親のフォームのボタンで閉じるために

Dim  変数  As  New  変数()
変数.show()
で開くのだから変数.close()に変えてみたのですが出来ませんでした。
「開いた子のウィンドウのフォームの名前.visible  =  false」でも
出来ません。

変数の宣言を上の方に持っていきPublic  変数  As  New  変数()でも出来ません。
モードレス、モーダル以外の方法で開いて閉じるとか他の方法で親フォームからの
子フォームを開いたり閉じたりするんでしょうか?
どこかにプロジェクトにあるフォームを書いておく必要があるんじゃないかとも考えているのですがいかがなものなのでしょうか?


岡田 之仁  2003-06-10 09:13:10  No: 107458

どのようなコードを書かれているのか解らないのですが・・・
例えばこんな感じで、出来ますが・・・

例 Form1 のコード

    Private objForm As Form2

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

        Me.Close()

    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        objForm.Close()

    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        objForm = New Form2()
        objForm.Show()

    End Sub

  Form2 のコード(念の為に閉じれるように)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Me.Close()

    End Sub

このコードを実行して、Form1 のButton1をクリックすると、Form2が
閉じますが、これでは違いますか?

以上。


ct  2003-06-12 11:10:26  No: 107459

出来ませんでした。
Form1_Loadの所のshowでデバックして起動したとき二つのフォームが出ると思うんですが
フォーム1しかでません。最初のPrivate  objForm  As  New  Form2は、windows
フォームデザイナで生成されたコードの下(各ボタン、フォームのプロージャの上)に書けばいいんですよね?


岡田 之仁  2003-06-13 12:26:16  No: 107460

> フォームデザイナで生成されたコードの下
> (各ボタン、フォームのプロージャの上)に書けばいいんですよね?

    はい、その通りです。

    Win2000 Pro SP3・WinXP SP1 の両マシンで実行しましたが、
    上記のコードで問題なく動作しております。

※  どなたか他の方で、上記のコードでフォームが1ツしか
    出ない方、居られますか?

    こちらのマシン環境のせいなのかどうか・・・
    手元のマシンでは動いてしまっておりますので、これ
    以上は解りません。

以上。


nanashi  2003-06-13 19:01:07  No: 107461

試してはいないけど、普通にこれで動くハズです。
ctさんが動かないって言ってるソースを提示してもらえれば、なんかアドバイス出来るかも。


ct  2003-06-16 07:05:17  No: 107462

親フォーム、子フォームと質問に書きましたが、ただフォームとモードレスで開い
たフォームとしておくべきだったようです。親フォーム、子フォームの意味がよく
分かっていませんでした。
とりあえず解決しました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加