iniファイルの内容を読み込んで表示・書き換え・再表示をする
ミニプログラムを作っています。

(1)Form1でiniファイルの内容をForm1.textに表示させる。
(2)Com1でForm2に遷移。
(3)Form2.textに書き換え内容を入力、Com2で書き換え、Form1に遷移。

Form1.textには書き換えられた内容が表示されている…という結果を出したいのですが、
Com1に
   Form2.show
   Form1.hide
と書いていた為、値の再表示が出来ませんでした。
そこで
   Unload Form1
   Form2.show
と書いてみると、プログラムが終わってしまいました・・・。
順序を逆にしても同じ結果です。

Form1.textだけ、もしくはForm1全体を
プログラムを終了させることなくunloadする方法がありましたら
教えてください。

A 回答 (3件)

vbMoval は vbModalの間違いです。



Form2.Show vbModal

と書くと、Form1は終了したり非表示になったりはしませんが、Form2を閉じるまでは、Form1を触ってもまったく反応しないようになります。

Form2.show
Form1.hide

と書いても、それ以降のコードは実行されますよ。

Form2.show
Unload Form1

と書くと、それ以降のコードは実行されません。
が、Form2が先にロードされるのでプログラムが終了することはありません。
これでももし終了してしまうとしたら、Form_UnloadイベントにEndステートメントが記述されていないか確かめてください。

もしくは、Form2のForm_Loadイベントで

Unload Form1

を書く手段もあります。
ちなみに、テキストボックスなどの最初から配置されているコントロールだけをアンロードする方法はありません。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ご指摘の通り、Form1のUnload(QueryUnload)イベントにEndを記述していました。
このせいでプログラムが終了してしまったのですか?
これを消して
   Form2.show
   Unload Form1
としたところ、やりたかった結果が出ました。

ちなみにForm2のForm_Loadイベントに Unload Form1 …という方法も
試したのですが、値の再表示が出来ませんでした。
後でまた書く位置などを変えて試してみます。

色々ていねいにありがとうございました。
また機会がありましたら教えてください(ペコリ)。

お礼日時:2002/01/23 12:07

lovelypoohさんこんにちは。



まずzerosixさんの回答の補足なのですが、

これは、
call FormXXX.show(vbMoval)
ではなく、
call FormXXX.show(vbModal)
が正解です。(これはShowメソッドを調べると載ってます)

vbModalをつけると、
呼び出し元のフォ-ムは呼び出したフォ-ムを閉じないとつつけなくなります。
もし、Form1からForm2を呼び出した際にForm1を非表示にする必要がないなら、
Call Form2.show(vbModal)
で、Form2を表示し、Form2をUnloadするタイミングで、
変更内容をForm1に書き出せば、やりたいことは実現するのではないでしょうか。
    • good
    • 0
この回答へのお礼

vbModalの説明、ありがとうございます。
ややこしくしないためにFormは常に1枚だけ表示を・・・、と考えていたのですが
これを使えば問題なしってことですよね。
画面がパコパコ動くよりも、こっちの方が親切に思えます。

Form2で変更したiniファイルの内容をForm1で読み込み直す・・・というのが
どうしてもできなかったので(Unloadのタイミングが悪いのか、プログラムが終了するのです…)
saruruさんのアドバイス通り、Form2をhideする際に変更内容をForm1に直で書き出すようにしました。
何だかいい感じに動いております。

ありがとうございました。
また機会がありましたら教えてやってください(ペコリ)。

お礼日時:2002/01/23 14:00

ちょっとあまり考えてませんが、


call FormXXX.show(vbMoval)
と記述してやってみてください。どうでしょうか?

この回答への補足

早速の回答ありがとうございます。
すみません、この記述はどこに書くのでしょうか?
Com1に
   call Form1.show(vbMoval)
と書いてみましたところ、変数が宣言されていないとのことで
とりあえず
   Dim vbMoval
とだけ書いて実行したところ、エラーは出ませんでしたが
Form1が表示されたままForm2が出て、変更後もForm1.textは変わっていませんでした。

このcall Form1.show(vbMoval)とはどんな役目をするのですか?
vbMovalって何ですか?(ヘルプでは該当なしと出ました)
何分素人なもので…。
よろしければまた教えてください。

補足日時:2002/01/23 11:18
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


人気Q&Aランキング