- PR -

Windowsアプリケーションの画面遷移

1
投稿者投稿内容
hana
会議室デビュー日: 2004/04/20
投稿数: 6
投稿日時: 2004-05-14 11:01
C#でWindowsアプリケーションを開発している者です。

親フォームからダイアログを表示するとき、
親フォームのボタンクリックのイベントで、
Form formA = new Form();
formA.ShowDialog();

のようにformAを表示しているのですが、
親フォームが一瞬画面から消えたようになって、子フォームを表示するため
画面がちかちかする印象が残ります。
(親フォームは子フォーム表示中も子フォームの後ろに表示して
待機している状態です。)
スムーズな画面遷移方法があれば、ぜひ教えてもらえないでしょうか?
よろしくお願いします。
一郎
ぬし
会議室デビュー日: 2002/10/11
投稿数: 1081
投稿日時: 2004-05-14 11:36
試してみましたがちかちかしませんでした。
親フォームはどのような作りになっているんでしょう。
コントロールが大量に乗っていたりするんですか?
hana
会議室デビュー日: 2004/04/20
投稿数: 6
投稿日時: 2004-05-14 11:58
早速のお返事ありがとうございます。

おっしゃるとおり
親フォームには大量のコントロールがのっています。
またグリッドものっています。

よろしくお願いします。
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-16 23:23
諸農です。

効果があるかどうかは判りませんが。。
もしも可能でしたら、事前にインスタンスを生成しておき、
必要な時にShowDialog()してみるとかはいかがでしょうか。

ただ、フォーム上のコントロールの数(描画される数)が
多かったり、マシンそのものが要求される高速な描画能力を
満たしていない(旧型という意味ではなく)のであれば、
あまり効果はないかもしれません。。。

_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2004-05-17 08:31
引用:

Jubeiさんの書き込み (2004-05-16 23:23) より:

もしも可能でしたら、事前にインスタンスを生成しておき、
必要な時にShowDialog()してみるとかはいかがでしょうか。


 どこかのスレッドで話題になり、MSの技術情報に追加されましたが、ShowDialogから復帰したフォームを再表示することはできません。したがって、何度も表示する可能性があるフォームなどには、適用できないかもしれません。


 SuspendLayoutとResumeLayoutメソッドのペアが使えないですかね???
Jubei
ぬし
会議室デビュー日: 2002/03/02
投稿数: 830
お住まい・勤務地: 関西
投稿日時: 2004-05-17 10:09
諸農です。

引用:

Jittaさんの書き込み (2004-05-17 08:31) より:

 どこかのスレッドで話題になり、MSの技術情報に追加されましたが、ShowDialogから復帰したフォームを再表示することはできません。したがって、何度も表示する可能性があるフォームなどには、適用できないかもしれません。



あああ、そうでしたね。。(^_^;)
すっかり失念していました。


_________________
諸農和岳
Powered by Turbo Delphi & Microsoft Visual Studio 2005

十兵衛@わんくま同盟
http://blogs.wankuma.com/jubei/
1

スキルアップ/キャリアアップ(JOB@IT)