- ベストアンサー
リストボックスに縦スクロールバーと選択
- VB初心者必見!リストボックスの使い方と縦スクロールバーの設定法を解説します
- リストボックスの選択状態を他のリストボックスに反映させる方法とは?初心者でもわかる解説
- リストボックスに縦スクロールバーを追加し、スクロール時にリストを自動的に更新する方法をご紹介
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
VBのバージョンやエディションなどを明記しましょう VB6などなら ListBoxのClickイベントで処理します Private Sub List_Click(Index as Integer) ' 再帰防止用フラグ Static sFlag = Boolean if sFlag then exit Sub sFlag = True dim n as Integer n = List( index ).ListIndex Select case Index case 0 list(1).ListIndex = n list(2).ListIndex = n case 1 list(0).ListIndex = n list(2).ListIndex = n case 2 list(0).ListIndex = n list(1).ListIndex = n end select sFlag = False End Sub VScrollとの連動は Scrollイベントで Private Sub VScroll1_Scroll() dim vIndex as Integer vIndex = VScroll1.Value List(0).TopIndex = vIndex List(1).TopIndex = vIndex List(2).TopIndex = vIndex End Sub FormのLoadイベントで Private Sub Form_Load() VScroll1.max = List(0).ListCount - 1 End Sub といった具合です すべてのリストボックスの項目数が一致しているならばですが
その他の回答 (1)
- redfox63
- ベストアンサー率71% (1325/1856)
VScroll1.Maxの設定をちゃんとしたのでしょうか? Form_LoadイベントなどのListBoxの項目を初期化した後で VScroll1.Max = List(0).ListCount - 1 として初期設定しないといけませんよ Maxプロパティは 32767まで設定可能です ListBoxの TopIndexは登録されているリスト項目の数-1までが設定可能値です リスト項目の数をあらわすプロパティが ListCountになります
お礼
すいません、設定忘れてました。設定しましたらうまく動作しました。 いやーさすが専門家です。本当にありがとうございました。
お礼
早速のご回答ありがとうございます。回答どおりプログラムを書いたら うまく動作しました。ありがとうございます。ただ縦スクロールバーを下まで動かすと、Scrollイベントで行が500行になると「プロパティの値が不正です」とでるのですが、あれは値が500以上になるとでるものなんでしょうか?時間があればご教授お願いします。 ちなみにVB4.0です。