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)
Please ask your question here ( do not send me a message)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
Regards,
TheBao




Reply With Quote