- ベストアンサー
コンボボックスの値が画面移動後、保存されません。
まだ、VB初めて2ヶ月なので分かる方、申し訳ないのですが 分かりやすく教えて下さい。 メニュー画面とデータを記入する画面が2画面あります。 メニュー画面の方に、コンボボックスを設置し、 コンボボックスに記入又は、記入したデータを選択させたい のですが、コンボボックスにデータを保存できません。 最初は空の状態で初めて、コンボボックスに名称を入れます。 保存するデータ入れて、コマンドボタンを押します。 この時コンボボックスの▼を押したら、値は残っていました。 そして、データ記入画面に移ります。 又、メニュー画面に戻ると、その名前は保存されてなく 綺麗さっぱり無くなってしまいます。 本には、大雑把に書いてあるだけでした。 本に書いてあった事は、コンボボックスに値を保存する時、 コマンドボタンに (コンボボックスのオブジェクト名:cboName) cboName.AddItem cboName.Text としか載ってなく、後の事は何も書いてありませんでした。 私には、後どのようにすれば良いのかが分かりません。 どうぞ、よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
2画面あるとのことですが、メニュー画面に戻るときもう一度その画面を作成(Load)しているのではないですか? そのために入力した値はどこにも残っていない状態になっている気がします。 新しくコンボボックスに追加した値をファイルorDBに保存しておいて、メニュー画面を作成する際にコンボボックスに値をセットする などの対応が必要ではないでしょうか?
その他の回答 (2)
- Masato_a
- ベストアンサー率21% (13/60)
#1の回答から推測すると、解決策は、画面の切り替えを Load 、Unload によって行うのではなく、 Visibleプロパティを使うか、Show 、Hideメソッドを使うかです。
お礼
具体的に書いて下さり、有難うございます。ごちゃごちゃだった物が、解けた様です。有難うございました。
- u_kappa
- ベストアンサー率30% (6/20)
そのコンボボックスの値はどこに保存するのですか? ファイルですか?DBですか?それ以外? つまり、そのマスタとなる場所から値を取得してコンボボックスに設定し、追加が発生した場合は、そのマスタへの更新処理が必要だと思います。 もし、そのマスタが保存する必要もないのであればグローバル変数とするとか、引数として持ちまわす等の処理がいると思います。 具体的な動きが良くわからないので(説明できない理由もあると思いますが)、これが正しいとは言えませんが・・・
お礼
色々細かい説明有難うございました。一生懸命何とか書きましたら、何とか出るようになりました。本当に有難うございました。
お礼
早速のご回答有難うございます。ちょっと、出口が見えた気がします。 でも、やっぱり分からないのですが、 要するに、コンボボックスに値を入れっぱなしにせず、 どこかに溜めて置けば宜しいのですか? そうしますと、どのように書けば良いのですか? 是非、お答えを下さると、嬉しいです。