C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Windowsフォーム


(過去ログ 96 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■57439 / inTopicNo.1)  Windowsフォーム
  
□投稿者/ papara (1回)-(2011/02/26(Sat) 18:26:56)

分類:[.NET 全般] 

お世話になります

開発環境
Visualstudio2005 Windowsアプリ VBで作業してます。
フォームにボタンを設置下記を記述しても閉じたり開いたりしてこないのですが
どのようにすればよいですか?
Me.Close()
Me.Show()

自分を閉じて
自分を開く

初級すぎて申し訳ありませんが宜しくお願いします
引用返信 編集キー/
■57441 / inTopicNo.2)  Re[1]: Windowsフォーム
□投稿者/ やじゅ (1847回)-(2011/02/26(Sat) 22:11:29)
やじゅ さんの Web サイト
2011/02/26(Sat) 22:27:03 編集(投稿者)

No57439 (papara さん) に返信
> Visualstudio2005 Windowsアプリ VBで作業してます。
> フォームにボタンを設置下記を記述しても閉じたり開いたりしてこないのですが
> どのようにすればよいですか?
> Me.Close()
> Me.Show()
>
> 自分を閉じて
> 自分を開く

Me.Closeしてしまうと、フォーム自身がメモリ上から破棄状態にされてしまうので、
その後の Me.Show の処理が無効(今回の場合、Me自身が無くなるため例外エラー)になってしまう。

表示/非表示に切り替える方法ではどうですか? この場合一瞬過ぎて分かりにくいけど
Me.Visible = False
Me.Visible = True
↓でも同様だったはず。
Me.Hide()
Me.Show()
引用返信 編集キー/
■57460 / inTopicNo.3)  Re[2]: Windowsフォーム
□投稿者/ PATIO (84回)-(2011/02/28(Mon) 12:02:07)
既にやじゅさんから返信がついていますが。

閉じてしまうと自分自身がいなくなってしまう為に表示しようがないと言う話かなと。
「閉じる」に対応するのは、「生成」(Create)になるんじゃないかと思います。
「表示」に対応するのは「非表示」でしょう。

非表示にして表示するだけで良いなら既にやじゅさんの指摘のとおりです。

で、本当に「閉じて」、再度「生成する」のであれば
そのフォームを生成できるモジュールが居て、そのモジュールが管理しないと
無理だと思います。
この辺はMeに当たるインスタンスを意識するとある程度納得できるのでは
ないかと思うのですけれど。

引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -