使兩個ListBox項目同步

來源:MSDN   Thomasaria

使List1項目的移動、選取,影響List2項目的動、選取

需:兩個ListBox,一個Timer
但這是vb4.0的作法,在vb5.0時,可以由Thomasaria 提供的簡易作法完成

Private Sub List1_Scroll(Index As Integer)
'按捲動軸時list項目位置同步
List2.TopIndex = List1.TopIndex
End Sub

Private Sub List2_Scroll(Index As Integer)
'按捲動軸時list項目位置同步
List1.TopIndex = List2.TopIndex
End Sub


Option Explicit

Sub Form_Load()
      'Initialize two list boxes with the alphabet
      Dim i As Long
      For i = 1 To 26
	 List1.AddItem Chr$(i + 64)
      Next i
      For i = 1 To 26
	 List2.AddItem Chr$(i + 64)
      Next i
      Timer1.Interval = 1
      Timer1.Enabled = True
End Sub

Sub Timer1_Timer()
      Dim TopIndex_List1 As Long
      Static PrevTI_List1
      'Get the index for the first item in the visible list
      TopIndex_List1 = List1.TopIndex
      'See if the top index has changed
      If TopIndex_List1 <> PrevTI_List1 Then
	 'Set the top index of List2 equal to List1 so that the list boxes
	 'scroll to the same relative position
	 List2.TopIndex = TopIndex_List1
	 'Keep track of the current top index
	 PrevTI_List1 = TopIndex_List1
      End If
      'Select the item in the same relative position in both list boxes
      If List1.ListIndex <> List2.ListIndex Then
	 List2.ListIndex = List1.ListIndex
      End If
End Sub