画面の遷移について

解決


プラ  2003-11-25 20:34:22  No: 80550  IP: [192.*.*.*]

遷移処理で
Form1からForm2を表示する。
Form2からForm1を再表示する。ということをしていのですが、

Form2を表示した際、Form1は非表示(または表示されているが、何もできない状態)

Form1を再表示した際、前回のForm1の内容は保持しておきたいってことを
画面間でやりたいんです。
showとかだけでもできるでしょうか?
初心者なもので知識たらずですみません

編集 削除
Say  2003-11-25 22:57:39  No: 80551  IP: [192.*.*.*]

Load / Unload せずに
Show / Hide (あるいはVisible = True / False)
すればいいのでは?

編集 削除
プラ  2003-11-27 10:23:16  No: 80552  IP: [192.*.*.*]

Say様ありがとうございます。
少し本に載っていたのですが、Modalを設定すると
いうのが意味がわからないのですが、
ShowとHide以外にもModalをいうのを設定しないと
前画面(Form1)の内容を保持してなおかつForm2が
起動している間はForm1はさわれないという設定は
できないのでしょうか?

編集 削除
k.k  2003-11-27 16:16:12  No: 80553  IP: [192.*.*.*]

たぶん、メッセージボックスを表示するようなことをやりたいのでしょう。
そしたら、
Form2.Show 1
引数に1(またはTrueでもいけるかな)を設定してShowメソッドを実行すると、
Form2がモーダルで表示されます。このモーダルというのは、呼び出しもとの
画面にはさわれないようにするというもの。

編集 削除
k.k  2003-11-27 16:16:36  No: 80554  IP: [192.*.*.*]

あ、Trueではいけないようですね。

編集 削除
プラ  2003-11-28 10:01:37  No: 80555  IP: [192.*.*.*]

k.k様ご助言ありがとうございます。
FormをShowした後にカンマを入れるとModalの設定が出るように
なったのでびっくりしました。
Trueはダメとの事なので、1を設定したのですがうまく型があわないと
言われ、うまく画面遷移できません・・・。
それと、Modalで前の画面をさわらせたくない設定をしたい時は、
Unload meはしなくてもよいのでしょうか?
本当に初心者の質問ですみません。
ご助言お願いたします。

編集 削除
k.k  2003-11-28 12:36:35  No: 80556  IP: [192.*.*.*]

まさか
Form2.Show , 1
とやっていませんか?
じゃなくて、カンマはいれずに
Form2.Show 1
とやるのです。
カンマを入れると第2引数ということになってしまいます。
第1引数がモーダルの設定で、第2引数が親フォームの設定です。
ですので、第2引数のフォームオブジェクトを設定するところに1を
設定しているので型が違うというエラーが出るのです。
これらの引数は省略可能で、単に
Form2.Show
とすると、アンモーダル(モーダルにせずに)表示し、親フォームを呼び出したフォームとするということになります。
Form2.Show 1
でモーダル表示(親フォームは呼び出したフォーム)
あえて、親フォームを別のフォームにしたい場合に、
Form2.Show ,Form3
Form2.Show 1,Form3
という感じでShowメソッドを実行するのです。
あ、その前にVB.NETじゃないですよね?
VB5やVB6を前提として説明しています。
もし、VB.NETだったらわかりません。

編集 削除
プラ  2003-12-01 11:36:26  No: 80557  IP: [192.*.*.*]

k.k様
ご助言本当にありがとうございます。
おもいきりカンマで設定してました・・・。
カンマを押した時点でツールチップテキストに文字が表示されたので、
あってると勝手に思いこんでしまいました。
スペースにて設定するとうまく画面遷移をして、前のフォームは
さわれなくなりました。
こんな初心者にとてもわかりやすい説明を本当にありがとうございます。

また来てしまうこともあると思いますが、よろしくお願いします。
ありがとうございました!!

編集 削除