dポイントプレゼントキャンペーン実施中!

VB6.0で3つのリストボックスに関連性を持たせたいと思っています。
Private Sub lstBox_Click()
Dim intLstIndex As Integer
intLstIndex = lstA.ListIndex
If (lstA.Selected(intLstIndex)) Then
lstB.Selected(intLstIndex) = True
lstC.Selected(intLstIndex) = True
Else
lstB.Selected(intLstIndex) = False
lstC.Selected(intLstIndex) = False
End If
End Sub
以上のように、どれか一つのリストボックスがクリックされたら他のリストボックスの同じ行がtrueになるようにしています。
しかしこれでは件数が増えた場合、選択された行が揃わなくなる場合があり非常に見栄えが悪くなります。
リストボックスでなくともかまわないのですが、このように三つの項目に関連性をもたせることはできませんでしょうか。

A 回答 (2件)

コントロール配列はあくまでコントロールの名称の取り扱いの定義に過ぎません。



選択された行が一列に揃う必要があれば、そのためのロジックが必要です。

確認していませんので、動くかわかりませんが、以下のような感じです。
'ClickTargetには設定が行われたリストボックスのインデックスを格納してください。

intLstIndex = lst(ClickTarget).ListIndex
for i = 0 to UBOUND(lst)
lst(i).Selectedindex = intLstIndex
Next i
    • good
    • 0

リストボックスを同名にして、コントロール配列にすれば、そういったロジックを組みやすくなります。

    • good
    • 0
この回答へのお礼

回答ありがとうございます。
おっしゃる通りコントロール配列を使用すれば一括して制御できるようになり、ソースがすっきりしますね。
有難うございます。

しかし、コントロール配列を使用しただけでは選択された行が一列に揃うことはありませんでした。
でのようにすればよいでしょうか。

お礼日時:2009/09/09 16:31

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