If you place the items File1.gif, File2.gif, File3.gif and File10.gif in List
Box or Combo Box, and set the Sorted property to True, they will come up listed
this
way:
File1.gif
File10.gif
File2.gif
File3.gif
Instead of
this way:
File1.gif
File2.gif
File3.gif
File10.gif
The source code below show you how to sort them properly.
This example
will sort List Box, but it's work exactly the same with Combo Box
Sub ReSort(L As Control)
Dim P%, PP%, C%,
Pre$, S$, V&, NewPos%, CheckIt%
Dim TempL$, TempItemData&,
S1$
For P = 0 To L.ListCount - 1
S =
L.List(P)
For C = 1 To
Len(S)
V = Val(Mid$(S,
C))
If V > 0 Then Exit
For
Next
If V > 0
Then
If C > 1 Then Pre =
Left$(S, C - 1)
NewPos =
-1
For PP = P + 1 To L.ListCount -
1
CheckIt
= False
S1
=
L.List(PP)
If Pre <> ""
Then
If InStr(S1, Pre) = 1 Then CheckIt =
True
Else
If Val(S1) > 0 Then CheckIt =
True
End
If
If
CheckIt
Then
If Val(Mid$(S1, C)) < V Then NewPos =
PP
Else
Exit For
End If
Next
If NewPos > -1
Then
TempL
=
L.List(P)
TempItemData =
L.ItemData(P)
L.RemoveItem
(P)
L.AddItem TempL,
NewPos
L.ItemData(L.NewIndex) =
TempItemData
P = P - 1
End
If
End If
Next
Exit Sub
End
Sub
Private Sub Command1_Click()
Call
ReSort(List1)
End Sub
Private Sub Form_Load()
'add items to the List
Box
List1.AddItem "File3.gif"
List1.AddItem "File2.gif"
List1.AddItem
"File10.gif"
List1.AddItem "File1.gif"
End Sub