Avatar billede joha0147 Nybegynder
04. januar 2002 - 16:32 Der er 4 kommentarer og
1 løsning

Drag listbox items??

Hvordan \"dragger\" man rundt på tekststrenge i en listbox??
Avatar billede ea_data Nybegynder
04. januar 2002 - 18:00 #1
Mener du drag/drop inden for samme listbox eller fra en listbox til en anden listbox?
Avatar billede ea_data Nybegynder
04. januar 2002 - 18:55 #2
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
Avatar billede joha0147 Nybegynder
04. januar 2002 - 20:02 #3
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!

På forhånd tak!
Avatar billede ea_data Nybegynder
04. januar 2002 - 20:34 #4
Hej

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
Avatar billede joha0147 Nybegynder
04. januar 2002 - 23:40 #5
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!!
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester