Her har du et eksempel på omflytning inden for samme listbox:
Private Sub Form_Load() \'I eksemplet bruges en textbox -> txtItem \'og en listbox -> lstDraggedItem txtItem.Visible = False lstDraggedItems.AddItem \"Hans\" lstDraggedItems.AddItem \"Per\" lstDraggedItems.AddItem \"Ole\" lstDraggedItems.AddItem \"Viggo\" End Sub
Private Sub lstDraggedItems_DragDrop(Source As Control, X As Single, Y As Single) Dim Insert As Integer Insert = Int(Y / 200) If Insert > lstDraggedItems.ListCount - 1 Then Insert = lstDraggedItems.ListCount - 1 End If With lstDraggedItems .RemoveItem .ListIndex .AddItem txtItem.Text, Insert End With End Sub
Private Sub lstDraggedItems_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lstDraggedItems txtItem.Text = .Text txtItem.Top = Y + .Top txtItem.Left = X + .Left txtItem.Drag End With End Sub
jeg ved ikke rigtig jeg synes ikke det ser så godt ud med den ramme der kommer når man dragger item\'et og hvis der var en måde hvorpå man kunne vise brugeren hvilket item han var over ved at highlighte det??? Jeg smider 30 point oveni hvis du kan ordne det!
Nu har jeg rettet koden til så den er som jeg tror du ønsker. Med hensyn til kassen kan du blot gøre textboxen helt lille, og vælge et dragicon i properties for textboxen, som så bliver vist, når du flytte rundt på dine tekster i listboxen. Læg mærke til de to nye variabler, som skal ligge i starten af din form under \'generel declarations\' og som bruges i dragdrop og dragover
Dim tmpIndex As Integer Dim visIndex As Integer _______________________________________________________
Private Sub lstDraggedItems_DragDrop(Source As Control, X As Single, Y As Single) Dim Insert As Integer Insert = Int(Y / 200) If Insert > lstDraggedItems.ListCount - 1 Then Insert = lstDraggedItems.ListCount - 1 End If With lstDraggedItems .RemoveItem tmpIndex .AddItem txtItem.Text, Insert End With End Sub
Private Sub lstDraggedItems_DragOver(Source As Control, X As Single, Y As Single, State As Integer) visIndex = Int(Y / 200) If visIndex > lstDraggedItems.ListCount - 1 Then visIndex = lstDraggedItems.ListCount - 1 End If lstDraggedItems.ListIndex = visIndex End Sub
Private Sub lstDraggedItems_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
With lstDraggedItems tmpIndex = .ListIndex txtItem.Text = .Text txtItem.Top = Y + .Top txtItem.Left = X + .Left txtItem.Drag End With End Sub Private Sub Form_Load() \'I eksemplet bruges en textbox -> txtItem \'og en listbox -> lstDraggedItem txtItem.Visible = False lstDraggedItems.AddItem \"Hans\" lstDraggedItems.AddItem \"Per\" lstDraggedItems.AddItem \"Ole\" lstDraggedItems.AddItem \"Viggo\" End Sub
ser fint ud! Ved dog ikke helt om jeg vil bruge det da der også sker noget når brugeren dblclicker så det bliver et stort kludder!!!
Men tak alligevel! Opretter lige et spørgsmål med de sidste 30 point!!
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.