初めまして。
VB6で初歩的なプログラムを練習しているのですが、
詰まってしまったので質問させて頂きます。
リストボックス1とラベル1使ってます。
---------------------------------------
Option Explicit
Dim kudamono As String
Private Sub Form_Load()
List1.AddItem "青森"
List1.AddItem "愛媛"
List1.AddItem "山梨"
End Sub
Private Sub List1_Click()
Select Case List1.ListIndex
Case 0
kudamono = "りんご"
Case 1
kudamono = "みかん"
Case 2
kudamono = "ぶどう"
End Select
Label1.Caption = List1.Text & "の名産は" & kudamono & "です。"
End Sub
------------------------------------------
リストをクリックすると『○○の名産は××です。』と表示されます。
問題はこれに追加と削除のコマンドボタンを追加するというプログラムです。
追加のプログラムは出来たのですが、リスト1をクリックすると
『○○』は問題なく表示されるのですが『××』が表示しません。
ヒントとして果物をリストボックスに入れて都道府県名と同じ場所を見れば良いと
聞いたのですが、どうしても上手くいきません。
どの様にすれば宜しいでしょうか。
そもそも果物をリストボックスに入れてないじゃない?
入れれば?
いや、list1とlist2で県名と果物別でリストボックスは作れたのですが、
List同士の関連付けはどうやるのかなと。
Label1.Caption = List1.Text & "の名産は" & kudamono & "です。"
ここの部分をどうしたら良いか分からないのです。
ListBoxに関して
選択した項目の位置を取得する List1.Listindex
選択した項目の文字列を取得する List1.List(インデックスの値)
もしくは
List1.List(List1.Listindex)
下記では如何ですか?
List1 と List2 が同期(産地と果物があっているなら)しているなら
List1 をクリックした時の位置を取得して、その位置の List2 の文字列を
取得すれば良いですよね。
Label1.Caption = List1.List(List1.Listindex) & "の名産は" & List2.List(List1.Listindex) & "です。"
追加・削除するなら、果物も動的に変更できるようにしないとダメ
更に8月氏の言う通り、2つの情報は同期していないとダメ
なら、8月氏のようにList2を(非表示で?)定義して
その中で果物の情報をやり繰りするか、
Collectionなどを使って、そこで管理するか等しないとダメかと
ちなみにCollection使うなら
・Dim coll as New Collection など、Newで生成しないと
Collectionは使えない
・CollectionのIndexは1からで、途中をReemoveするとIndexは詰められるみたい
…あたりに気をつけて
>>8月さん
お返事遅れてすみません。
>Label1.Caption = List1.List(List1.Listindex) & "の名産は" & List2.List(List1.Listindex) & "です。"
この書き方で無事表示できました。
>>あさん
List2は非表示で隠してみました。
御二方ありがとうございました。
ツイート | ![]() |