- - PR -
フォームの閉じ方
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-01-18 19:10
すでにダッチさんが書かれていますが・・
ではダメですか? | ||||||||||||
|
投稿日時: 2007-01-18 19:14
ShowDialog メソッドを使用しているのであれば、戻り値で判断できるのでは?
あとは、最初のメイン フォームまで随時、DialogResult に同じ値を伝播させていくだけですよね。 最後にメイン フォームが Close されれば、すべてのウィンドウは閉じられ、アプリケーションは正しく終了します。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-18 20:07
とりあえずこんな感じで作っています。
FORM2_Loadイベントで blnClose = False CANCEL_Clickイベントで 'キャンセルボタンを押した場合 blnClose = True Me.Close() FORM2_FormClosingイベントで If gblnClose = False Then [プログラムを終了させる命令文] End If ここの命令文がわかりません。初歩的な質問ですみません。 | ||||||||||||
|
投稿日時: 2007-01-18 20:48
ダイアログ リザルト
ちげー ダイアログって、もうなし? メインフォーム差し替え 2007-01-16 11:51 を見ると、Form2 を開くときに Form1 は Hide しているので、[×]でアプリケーションを終了しても、特に違和感はなさそう。 (あくまで、Hide しているから) 例えば、インストーラを考えますが、[次へ]で進んでいくと、一瞬ウインドウが消えることがあります。このとき、別のウインドウ オブジェクトに変わっていると考えられます。しかし、このウインドウを[キャンセル]なり[×]なりすると、インストーラというアプリケーション全体が終了します。 こんな感じで、メインウインドウを差し替えるとか。 → http://blogs.wankuma.com/jitta/archive/2007/01/12/55937.aspx 「VB なんです」なんていう前に、リンク先も見てね。 ただ、この場合、前後のウインドウが対等な関連であるため、違和感がないだけです。Form2 や Form3 を開くトリガが、「詳細表示」や「条件指定」といった従属関係のあるタスクを実行するためであるなら、違和感があります。 [ メッセージ編集済み 編集者: Jitta 編集日時 2007-01-18 22:02 ] | ||||||||||||
|
投稿日時: 2007-01-18 21:12
シルバさん、こんばんは。
つまり、form1 〜 form3 のうち、常にどれか一つのフォームだけが表示されるようにして、行きつ戻りつが可能で、どのフォームからでもアプリケーションを終了可能にしたい、という事ですよね? #例えばウィザード形式のアプリケーションみたいな。 こういった場合、フォーム同士の関係は親・子・孫…ではなく兄弟にして、表示の切り替え等の制御は全て、親にやらせることでスッキリします。 子供たちは「ボタンが押された」とか「X で閉じられた」とかを親に報告するだけにして、兄弟同士での勝手なやり取りなどは行わないようにします。 以下のサンプルでは、「アプリケーション フレームワークを有効にする」のチェックを外し、「スタートアップオブジェクト」に Sub Main を指定しています(つまり「親」はフォームではない)。
| ||||||||||||
|
投稿日時: 2007-01-18 21:26
ウィザード形式の場合は、ユーザーコントロールを張り替えることで、対応すべきだと思います。 余計なリソースと、チラツキを抑えることができます。(Delphi 的な考え?) _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||||||
|
投稿日時: 2007-01-18 22:27
じゃんぬさん、こんばんは。
うぅ…他に良い喩えが思いつかなかったんです…。 | ||||||||||||
|
投稿日時: 2007-01-18 22:44
#思わず反応(余計なことと思いつつ・・
私はこの方が馴染んでますね(いまだにWin32でDelphiを使うことがことが多い・・)。 |