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

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

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

Re[8]: 複数のフォーム間の画面遷移


(過去ログ 42 を表示中)

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

■22030 / inTopicNo.1)  複数のフォーム間の画面遷移
  
□投稿者/ Kさん (1回)-(2008/07/15(Tue) 10:34:33)

分類:[.NET 全般] 

2008/07/15(Tue) 10:37:46 編集(投稿者)

開発環境
OS:Microsoft WindowsXP Professional SP2
開発ツール:Microsoft Visual Studio 2005
使用言語:VC++

@親フォーム→子フォーム1 子フォーム1→親フォーム
A子フォーム1→子フォーム2 子フォーム2→子フォーム1
B子フォーム2→子フォーム3 子フォーム3→子フォーム2
C子フォーム3→親フォーム 親フォーム→子フォーム4

@ABの遷移の仕方が
現在のフォームをVisibleで隠し、次のフォームを呼び出しています。
戻るときは子フォームの public ref class に

public:System::Windows::Forms::Form^ form1;

とかき親フォーム(または、子フォーム)を Visible=true にできるようにしてあげているのですが
このやり方だとCの一番最後の子フォーム4から親フォームに戻るのがどうしてもできません。
是非、遷移のやり方を教えていただきたいのです。
お願いします。

もし現在のやり方だとCが実現できないなら他の方法を教えていただけるとありがたいです。
引用返信 編集キー/
■22039 / inTopicNo.2)  Re[1]: 複数のフォーム間の画面遷移
□投稿者/ 黒龍 (105回)-(2008/07/15(Tue) 11:22:27)
全て親フォームでインスタンスを持つようにすれば楽だと思います。
もしくは管理用のクラスを設けるとか。
引用返信 編集キー/
■22061 / inTopicNo.3)  Re[2]: 複数のフォーム間の画面遷移
□投稿者/ Kさん (2回)-(2008/07/15(Tue) 14:05:51)
返信ありがとうございます。

親フォームでインスタンスを生成し行ってみたのですが
コンパイルは通りました。けれど論理エラーでうまく遷移してくれません。

管理用のクラスの方法もいろいろな資料やサイトで見てみて以前に行ってみたのですが
勉強不足でなかなか理解できませんでした。

ヒントか、何か良いサイトがあったのなら教えてほしいのですが、お願いします。
引用返信 編集キー/
■22068 / inTopicNo.4)  Re[3]: 複数のフォーム間の画面遷移
□投稿者/ ま (76回)-(2008/07/15(Tue) 15:09:31)
親(フォーム)<>子1(モーダル)<>子2(モーダル)<>子3(モーダル)
    |                          |
    +−−−−−−−−−−−−<<−−−−−−−−−−−−+
親(フォーム)−>子4(モーダル)
    |         |
    +−−−−<<−−−+

なんだかよくわからないのですが、基本的に、
親画面には、子1を起動するボタンしか無いが、子3から親に戻るパターンの時だけ
子1起動ボタンは子4を起動する、ってこと?

「まる1」の親と「まる4」の親が同じ親で、「まる4」の親画面ってのは、子3までの結果を一覧
表示するためだけの画面であるならば、リソースけちらずに素直に「まる4」の親を子3.5とかに
すればいいだけじゃないでしょうかね?

親−>子1−>子2−>子3−>子3.5−>子4



引用返信 編集キー/
■22108 / inTopicNo.5)  Re[4]: 複数のフォーム間の画面遷移
□投稿者/ Kさん (4回)-(2008/07/15(Tue) 19:25:01)
2008/07/15(Tue) 19:28:27 編集(投稿者)

すいません、間違えて書いてました。
>C子フォーム3→親フォーム 親フォーム→子フォーム4
C子フォーム3→親フォーム


まさんの書き方を借りるとこうゆう動きです。

親(フォーム)<>子1(モーダル)<>子2(モーダル)<>子3(モーダル)
    |                                     |
    +−−−−−−−−−−−−<<−−−−−−−−−−−−+

引用返信 編集キー/
■22118 / inTopicNo.6)  Re[5]: 複数のフォーム間の画面遷移
□投稿者/ 特攻隊長まるるう (136回)-(2008/07/15(Tue) 20:18:34)
VBでだけど、
1.各フォームに対応した Index を決めておき、
2.各フォームが次に表示したいフォームの Index を引数にしたイベントを起こしたら
3.管理クラス(フォームではない)がイベントを捉えて、引数に対応したフォームを表示
という風に処理したことがあります。
もちろん、各フォームのインスタンスは、管理クラスが1つずつ用意して保持してます。

フォームに親子関係は無く、全て同等。どのフォームからどのフォームへも、イベントの
引数を変更するだけで遷移可能です。

>現在のフォームをVisibleで隠し、
モーダル関係無くなりそうですし。
引用返信 編集キー/
■22410 / inTopicNo.7)  Re[6]: 複数のフォーム間の画面遷移
□投稿者/ Kさん (5回)-(2008/07/23(Wed) 09:50:30)
返信遅れてすいません。
自分が勉強不足過ぎたので、またいろいろなサイトや書籍を読んでみて
今、コレクションクラスを使用し画面遷移を行おうとしています。

http://support.microsoft.com/kb/815706/ja
のサイトの

>Form コレクション オブジェクトのインスタンスを作成します。

>public:
>FormsCollection *Forms;
で * がだめだと言うエラーが出ているのですが、どう対処したらよいかわかりません。


↓が他に参考にしたサイトです。
http://e-chishiki.com/jpn/tips/vcpp/collection_classes
引用返信 編集キー/
■22412 / inTopicNo.8)  Re[7]: 複数のフォーム間の画面遷移
□投稿者/ επιστημη (1177回)-(2008/07/23(Wed) 10:38:31)
επιστημη さんの Web サイト
2008/07/23(Wed) 10:38:48 編集(投稿者)

> http://support.microsoft.com/kb/815706/ja
> http://e-chishiki.com/jpn/tips/vcpp/collection_classes

残念ながらどっちもハズレ。前者はmanaged C++だし後者はMFC
アナタが書いてるのはC++/CLIだから

System::Collections::Generic::List<Form^> あたりがよさげかと。

http://msdn.microsoft.com/ja-jp/library/6sh2ey19(VS.80).aspx

引用返信 編集キー/
■22414 / inTopicNo.9)  Re[8]: 複数のフォーム間の画面遷移
□投稿者/ Kさん (6回)-(2008/07/23(Wed) 11:07:13)
返信ありがとうございます。
自分は間違った方向で勉強していたようですね。道理でできないわけです。

早速、アドバイスの通りに行ってみたいと思います。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -