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

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

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

Re[6]: モードレスの終了待ち


(過去ログ 72 を表示中)

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

■42183 / inTopicNo.1)  モードレスの終了待ち
  
□投稿者/ LuLu (1回)-(2009/10/09(Fri) 12:36:58)

分類:[C/C++] 

こんにちわ

使用言語:Visual C++ .NET (C++/CLI)

メインフォームより、以下を実行しモードレスでフォームを表示した際に
モードレスの終了待ちをする方法を教えて下さい

Form1^ Form1Obj = gcnew Form1();
Form1Obj->Show(this);


引用返信 編集キー/
■42184 / inTopicNo.2)  Re[1]: モードレスの終了待ち
□投稿者/ 774RR (408回)-(2009/10/09(Fri) 12:44:47)
待つんだったらモーダルでいいぢゃん。というより、モーダルにすべきであると俺なら判断する。
引用返信 編集キー/
■42186 / inTopicNo.3)  Re[2]: モードレスの終了待ち
□投稿者/ LuLu (2回)-(2009/10/09(Fri) 12:55:38)
2009/10/09(Fri) 13:19:19 編集(投稿者)

メインフォームがあり、その上にモードレスのフォームAを表示し
フォームAの「OK」がおされたらフォームAは閉じ、
メインフォームの上にモードレスのフォームBを表示したい
インストール時のウィザードのような感じ
なおフォーム自体(フォームA、フォームB)の管理は
メインフォームで行いたい
ので、モーダルで行うと実現できません


引用返信 編集キー/
■42190 / inTopicNo.4)  Re[3]: モードレスの終了待ち
□投稿者/ Blue (23回)-(2009/10/09(Fri) 13:48:24)
待つというかサブダイアログの終了を知りたいということでしょうか?

参考
【VC++2005(CLR)】フォームを閉じたことを検知するには?
http://oshiete1.goo.ne.jp/qa4995556.html
引用返信 編集キー/
■42194 / inTopicNo.5)  Re[4]: モードレスの終了待ち
□投稿者/ LuLu (3回)-(2009/10/09(Fri) 15:12:19)
2009/10/09(Fri) 16:01:50 編集(投稿者)

サブダイアログの終了をメインフォームで受け取る方式で実現できますが
ソースのつくりとして、1つのメソッド内で
以下のようなコーディングを期待しております

Form1^ Form1Obj = gcnew Form1();
Form1Obj->Show(this);
★Form1Objの終了待ちの処理
delete Form1Obj;

Form2^ Form2Obj = gcnew Form2();
Form2Obj->Show(this);
★Form2Objの終了待ちの処理
delete Form2Obj;


引用返信 編集キー/
■42196 / inTopicNo.6)  Re[3]: モードレスの終了待ち
□投稿者/ 渋木宏明(ひどり) (1233回)-(2009/10/09(Fri) 15:27:46)
渋木宏明(ひどり) さんの Web サイト
> メインフォームがあり、その上にモードレスのフォームAを表示し
> フォームAの「OK」がおされたらフォームAは閉じ、
> メインフォームの上にモードレスのフォームBを表示したい

というシナリオで、どうしてモーダルじゃダメなのかさっぱり分からないです。

引用返信 編集キー/
■42197 / inTopicNo.7)  Re[4]: モードレスの終了待ち
□投稿者/ なちゃ (333回)-(2009/10/09(Fri) 15:31:05)
どこをどう見てもモーダルが良さそうに見えるんですが、
どんな風にモーダルだとダメなんでしょう?

理由を書かれてますけどなぜ実現出来ないという結論になるのかよく分かりません。

引用返信 編集キー/
■42201 / inTopicNo.8)  Re[5]: モードレスの終了待ち
□投稿者/ LuLu (4回)-(2009/10/09(Fri) 15:59:45)
見栄えの問題だけです
フォームAからサブフォームBをモーダルで開いた場合、フォームAが残る
フォームB表示のタイミングでフォームAを非表示するとフォームのちらつきが気になる

そこで
メインフォームのFormBorderStyleはFixedSingleを指定し
サブフォームのFormBorderStyleはNone指定し
メインフォームの上にサブフォームを表示することにより
見た目は1つのフォームにしています
メインフォームのタイトルバーを選択しフォームを移動した際に
サブフォームをモードレスで表示している場合のメインとサブフォームを一緒に移動するやり方はわかるが
サブフォームをモーダルで表示した場合にメインとサブを一緒に移動するやり方はわからない(メインフォームを選択できない)為です

サブフォームをモーダルで表示した場合でも
メインとサブを一緒に移動するやり方がわかれば
サブフォームをモーダルしても問題ないです

引用返信 編集キー/
■42206 / inTopicNo.9)  Re[6]: モードレスの終了待ち
□投稿者/ Jitta on the way (459回)-(2009/10/09(Fri) 18:29:32)
No42201 (LuLu さん) に返信
> 見栄えの問題だけです
> フォームAからサブフォームBをモーダルで開いた場合、フォームAが残る
> フォームB表示のタイミングでフォームAを非表示するとフォームのちらつきが気になる
>
> そこで
> メインフォームのFormBorderStyleはFixedSingleを指定し
> サブフォームのFormBorderStyleはNone指定し
> メインフォームの上にサブフォームを表示することにより
> 見た目は1つのフォームにしています

メインフォームを“非表示”にすればいいのでは?



処理が終了するのを“待つ”のではなく、終了したことを通知してもらい、“次にどのフォームを表示するか”、管理すればいいのでは?
引用返信 編集キー/
■42236 / inTopicNo.10)  Re[7]: モードレスの終了待ち
□投稿者/ たくボン (251回)-(2009/10/10(Sat) 01:24:24)
No42206 (Jitta on the way さん) に返信
> ■No42201 (LuLu さん) に返信
>>見栄えの問題だけです

見栄えだけの問題なら、子フォームに親フォームの参照を持たせて子フォームのLocationChangedイベントで親のLocationを変更すればいいと思う。
一応VBだけど問題なくできるし。

っていうか、こんなのならMDIにするなりモーダルにするなりして、仕様を再考した方がいいと思いますよ。
あくまでも使うのはエンドユーザだと思うので。
引用返信 編集キー/
■42245 / inTopicNo.11)  Re[6]: モードレスの終了待ち
□投稿者/ Azulean (468回)-(2009/10/10(Sat) 11:43:45)
No42201 (LuLu さん) に返信
> メインフォームのFormBorderStyleはFixedSingleを指定し
> サブフォームのFormBorderStyleはNone指定し
> メインフォームの上にサブフォームを表示することにより
> 見た目は1つのフォームにしています
そうだとすると、サブフォームは Form である必要はなさそうですね。
ユーザコントロールとか検討してみたのでしょうか?

やりたいことは、1つのフォーム(メインフォーム)の中でパネルをステップに応じて切り替えていくもの(=ウィザード)だと捉えています。

> サブフォームをモーダルで表示した場合でも
> メインとサブを一緒に移動するやり方がわかれば
> サブフォームをモーダルしても問題ないです
モーダルダイアログの場合、表示元のフォームを触ることができなくなります。
ウィザード形式を目指すのであれば、サブフォーム&モーダル表示は確かに採用できませんね。

No42194 (LuLu さん) に返信
> 以下のようなコーディングを期待しております
>
> Form1^ Form1Obj = gcnew Form1();
> Form1Obj->Show(this);
> ★Form1Objの終了待ちの処理
> delete Form1Obj;
基本的にはできません。
先にも書きましたように、方針自体の見直しを提案します。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -