Hi CDogg,
Here is the code again. This time I add another TextBox.
This code allowed you to the following extra thing:
1. Drag item in list box to the text box
2. Drag item in your list box up and down (re-arrange order)
Code:
Option Explicit
Private Sub cmdAdd_Click()
Dim sTmp As String
sTmp = InputBox("Enter new item to add:")
If Len(sTmp) = 0 Then Exit Sub
lstItems.AddItem sTmp
End Sub
Private Sub cmdDelete_Click()
If lstItems.ListIndex > -1 Then
If MsgBox("Delete '" & lstItems.Text & "'?", vbQuestion + vbYesNo) = vbYes Then
lstItems.RemoveItem lstItems.ListIndex
End If
End If
End Sub
Private Sub cmdUp_Click()
On Error Resume Next
Dim nItem As Integer
With lstItems
If .ListIndex < 0 Then Exit Sub
nItem = .ListIndex
If nItem = 0 Then Exit Sub 'can't move 1st item up
'move item up
.AddItem .Text, nItem - 1
'remove old item
.RemoveItem nItem + 1
'select the item that was just moved
.Selected(nItem - 1) = True
End With
End Sub
Private Sub cmdDown_Click()
On Error Resume Next
Dim nItem As Integer
With lstItems
If .ListIndex < 0 Then Exit Sub
nItem = .ListIndex
If nItem = .ListCount - 1 Then Exit Sub 'can't move last item down
'move item down
.AddItem .Text, nItem + 2
'remove old item
.RemoveItem nItem
'select the item that was just moved
.Selected(nItem + 1) = True
End With
End Sub
Private Sub lstItems_DragDrop(Source As Control, X As Single, Y As Single)
Dim i As Integer
Dim nID As Integer
Dim sTmp As String
If Source.Name <> "lstItems" Then Exit Sub
If lstItems.ListCount = 0 Then Exit Sub
With lstItems
i = (Y \ TextHeight("A")) + .TopIndex
If i = .ListIndex Then
'dropped on top of itself
Exit Sub
End If
If i > .ListCount - 1 Then i = .ListCount - 1
nID = .ListIndex
sTmp = .Text
If (nID > -1) Then
sTmp = .Text
.RemoveItem nID
.AddItem sTmp, i
.ListIndex = .NewIndex
End If
End With
SetListButtons
End Sub
Sub lstItems_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then lstItems.Drag
End Sub
Private Sub Text1_DragDrop(Source As Control, X As Single, Y As Single)
Text1.Text = Source.Text
End Sub
Private Sub lstItems_Click()
SetListButtons
End Sub
Sub SetListButtons()
Dim i As Integer
i = lstItems.ListIndex
'set the state of the move buttons
cmdUp.Enabled = (i > 0)
cmdDown.Enabled = ((i > -1) And (i < (lstItems.ListCount - 1)))
cmdDelete.Enabled = (i > -1)
End Sub
Please ask your question here ( do not send me a message)
Regards,
TheBao