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する方法がありましたら
教えてください。
No.1
- 回答日時:
ちょっとあまり考えてませんが、
call FormXXX.show(vbMoval)
と記述してやってみてください。どうでしょうか?
この回答への補足
早速の回答ありがとうございます。
すみません、この記述はどこに書くのでしょうか?
Com1に
call Form1.show(vbMoval)
と書いてみましたところ、変数が宣言されていないとのことで
とりあえず
Dim vbMoval
とだけ書いて実行したところ、エラーは出ませんでしたが
Form1が表示されたままForm2が出て、変更後もForm1.textは変わっていませんでした。
このcall Form1.show(vbMoval)とはどんな役目をするのですか?
vbMovalって何ですか?(ヘルプでは該当なしと出ました)
何分素人なもので…。
よろしければまた教えてください。
No.2ベストアンサー
- 回答日時:
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
を書く手段もあります。
ちなみに、テキストボックスなどの最初から配置されているコントロールだけをアンロードする方法はありません。
回答ありがとうございます。
ご指摘の通り、Form1のUnload(QueryUnload)イベントにEndを記述していました。
このせいでプログラムが終了してしまったのですか?
これを消して
Form2.show
Unload Form1
としたところ、やりたかった結果が出ました。
ちなみにForm2のForm_Loadイベントに Unload Form1 …という方法も
試したのですが、値の再表示が出来ませんでした。
後でまた書く位置などを変えて試してみます。
色々ていねいにありがとうございました。
また機会がありましたら教えてください(ペコリ)。
No.3
- 回答日時:
lovelypoohさんこんにちは。
まずzerosixさんの回答の補足なのですが、
これは、
call FormXXX.show(vbMoval)
ではなく、
call FormXXX.show(vbModal)
が正解です。(これはShowメソッドを調べると載ってます)
vbModalをつけると、
呼び出し元のフォ-ムは呼び出したフォ-ムを閉じないとつつけなくなります。
もし、Form1からForm2を呼び出した際にForm1を非表示にする必要がないなら、
Call Form2.show(vbModal)
で、Form2を表示し、Form2をUnloadするタイミングで、
変更内容をForm1に書き出せば、やりたいことは実現するのではないでしょうか。
vbModalの説明、ありがとうございます。
ややこしくしないためにFormは常に1枚だけ表示を・・・、と考えていたのですが
これを使えば問題なしってことですよね。
画面がパコパコ動くよりも、こっちの方が親切に思えます。
Form2で変更したiniファイルの内容をForm1で読み込み直す・・・というのが
どうしてもできなかったので(Unloadのタイミングが悪いのか、プログラムが終了するのです…)
saruruさんのアドバイス通り、Form2をhideする際に変更内容をForm1に直で書き出すようにしました。
何だかいい感じに動いております。
ありがとうございました。
また機会がありましたら教えてやってください(ペコリ)。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- Visual Basic(VBA) 九九の答えの計算 3 2022/12/20 22:13
- C言語・C++・C# 現在プログラムを作っているのですが、実行したときに写真のように結果が表示されるのですが、これを CH 2 2023/01/18 16:22
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- JavaScript セレクトボックスで配列を呼び出したい。 1 2022/07/08 20:14
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript 【jquery】EasyUIのSubGridにMySQLのテーブルデータを表示&編集にしたい 5 2022/05/02 13:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
なんかC言語でプログラム書いて...
-
MACで動く実行ファイルをWindow...
-
VB上で実行中の無限ループの止め方
-
他のPC上にあるexeを、そのP...
-
ExcelのVBAでX=0〜1の定積分を...
-
プログラミング ソースコード
-
DPマッチングのプログラミング
-
プリントスクリーンをプログラ...
-
並列計算をしたときのシステム...
-
秒数を数える(C言語)
-
C++でCtrl+Cを無効化したい
-
C#.net FTPでホームディレクト...
-
アクセス[ファイルを開かずに、...
-
C言語 fork()について
-
Visual Studio デバッグ実行で...
-
ヘッダファイル? malloc.hと...
-
clock関数は正確じゃないの?
-
実行時エラー429
-
システム資源とは?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Macターミナルで実行中のプログ...
-
なんかC言語でプログラム書いて...
-
プログラミング ソースコード
-
MACで動く実行ファイルをWindow...
-
実行時エラー429
-
Windows10でDOSゲーム
-
VB上で実行中の無限ループの止め方
-
他のPC上にあるexeを、そのP...
-
sendkeysにてALT+CTRL+INSERTを...
-
VBAで外部プログラムを非表示で...
-
システム資源とは?
-
プロセス間通信について
-
アクセス[ファイルを開かずに、...
-
C言語でプログラムを再起動
-
C言語で途中までしか、プログラ...
-
system関数を使用してsuコマン...
-
終了してもプログラムが実行し...
-
PIC のデータEEPROMに書き込み...
-
実行中の実行ファイルの上書き
-
他の実行ファイルを実行するプ...
おすすめ情報