デベロッパセンター(変です)

タグの編集
投稿者 dekiaメロン  (中学生) 投稿日時 2008/12/13 05:46:22
form2 からform1をクローズするには 

こんな質問がマイクロソフトの掲示板(ニセ?)で書いてありました。
長々と返信が書いてある。
フォーム2のクローズイベントに
Application.Exit()
で何か問題があるんでしょうか。
たった1行でできるのに。
投稿者   (社会人) 投稿日時 2008/12/13 07:27:37
これやね
http://forums.microsoft.com/MSDN-JA/ShowPost.aspx?PostID=4145870&SiteID=7

質問者さん曰く
>つまりいくつかフォームがあって 特定のフォームの終了処理で他のフォームも閉じたいのです。スタートアップに指定したフォームは除いて
だそうだけど、何?Application.Exit()?
アプリ終了させてどうすんの?馬鹿なの?し(ry

まぁ、物凄ーく好意的な見方をすれば、これも既定のインスタンスの弊害なのかもねぇ。
投稿者 (削除されました)  () 投稿日時 2008/12/13 09:36:40
(削除されました)
投稿者 刑事(デカ)メロン  (中学生) 投稿日時 2008/12/13 09:52:56
よく読んだら、変な質問だ。
しかし簡単なことだな。
それに2005とか2008とか質問者は書いてないが、よく返答できるもんだね。
消したいフォームのオブジェクトを使えなくすればいいだけのことだろ。
あんなに長く解説してさぁ(^^)
投稿者   (社会人) 投稿日時 2008/12/13 10:41:37
さらっとしか見てないですが、動けばよいという回答なら場合によってはApplication.Exitもありなのかもしれません。
今回の質問の答えとしては当てはまりませんが。

過去にわんくまの方と何があったのかは存じませんが、私にはお二方とも別に勘違いしているようには思えません。どのように設計して実装するのが、良いのかという点を論じてるだけだと思います。

それと、消したいフォームのオブジェクトを使えなくするは、ちょっと違うと思います…。
使えなくするというのがどういう状況かわかりませんが、Nothingを代入するとかを思い浮かべてしまいますが、それだとフォームは閉じないですよね?
投稿者 (削除されました)  () 投稿日時 2008/12/13 11:54:16
(削除されました)
投稿者 デカ(刑事)メロン  () 投稿日時 2008/12/13 15:24:26
z>かなりバカだなwww
桜さん>Form1.visible=False
Form3.visible=False
Form4.visible=False
とかで十分かと。まぁ、あそこの掲示板は5人しか居ないけどね(苦笑)
投稿者   (社会人) 投稿日時 2008/12/13 17:59:49
画面上に見えないようにするっていうのと、
操作できないようにするってのは意味が違うよ。

Form2.Text="変更前"
Form2.ShowDialog()
Form2.Close()
Form2.Text="変更後"


Dim f As Form2 = New Form2()
f.Text="変更前"
f.ShowDialog()
f.Close()
f = Nothing
f.Text="変更後"


この2つの違いが分かればいいけど。
あそこの話は基本であり重要な部分でもあるからできればちゃんと読んでおくべき。
投稿者   (社会人) 投稿日時 2008/12/13 18:29:52
フォームを閉じるというのと、見えないようにするは違うことです。
閉じないで、隠しっぱなしだとどんどんリソースを食いつぶしていきますよ?

デフォルトのインスタンスしか使わないのであれば問題ないのかもしれないですけど。
それでも、再度表示すると前に入力したものが残ってたり中途半端な感じがします。