Public sSel As String 'Selected Text (On MouseDown) Public iSel As Integer 'Selected Index
Private Sub List1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) sSel = List1.List(List1.ListIndex) iSel = List1.ListIndex Me.Caption = sSel End Sub
Private Sub List1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button <> vbLeftButton Then Exit Sub Dim sTemp As String Dim i As Integer Dim iCur As Integer 'Current Index iCur = List1.ListIndex Do While iCur <> iSel If iCur < iSel Then List1.List(iSel) = List1.List(iSel - 1) List1.List(iSel - 1) = sSel iSel = iSel - 1 Else List1.List(iSel) = List1.List(iSel + 1) List1.List(iSel + 1) = sSel iSel = iSel + 1 End If Loop End Sub
Ja, det er jo ikke helt den funktion som mitzy17 efterspørger... det er nemlig meget bedre!! Fantastisk! Den kode har jeg kikket mangt og meget efter :D
Synes godt om
Slettet bruger
24. august 2002 - 14:36#3
Så det vil sige at man bare skal flytte emnet op/ned?? Genialt. Jeg tester det lige.
OK det gik måske for hurtigt med at klippe fra noget jeg havde ;-)
Man kan åbenbart ikke uden videre ændre koden til en ListView i stedet for, det er som om at MouseMove ikke virker på samme måde som i en ListBox.
Men her er koden og det virker også - men ikke så overbevisende som i ListBox - man skal somme tider trække musen til siden for at aktivere MousMove. Det er muligt at ved at ændre koden lidt kan få den helt rigtig, men jeg har ikke tid lige nu!!
Public sSelLV As String Public iSelLV As Integer
Private Sub ListView1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) sSelLV = ListView1.ListItems.Item(ListView1.SelectedItem.Index) iSelLV = ListView1.SelectedItem.Index ListView1.HoverSelection = True End Sub
Private Sub ListView1_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single) If Button <> vbLeftButton Then Exit Sub Dim iCur As Integer 'Current Index iCur = ListView1.SelectedItem.Index Do While iCur <> iSelLV Me.Caption = "iCur :" & iCur & " iSelLV :" & iSelLV If iCur < iSelLV Then ListView1.ListItems.Item(iSelLV) = ListView1.ListItems.Item(iSelLV - 1) ListView1.ListItems.Item(iSelLV - 1) = sSelLV iSelLV = iSelLV - 1 Else ListView1.ListItems.Item(iSelLV) = ListView1.ListItems.Item(iSelLV + 1) ListView1.ListItems.Item(iSelLV + 1) = sSelLV iSelLV = iSelLV + 1 End If Loop End Sub
Private Sub ListView1_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single) ListView1.HoverSelection = False End Sub
Meeen - det mitzy17 egentligt spørger efter er meget mere simpelt - der skal det markerede element flyttes til top, når man klikker på en knap. Er du interesseret i den kode, mitzy17, skal jeg gerne lave den, men du er måske (ganske forståeligt) mere tilfancy muse-drag-and-drop-funktioner ;o)
put dette i FlytOpCmd_Click(): ListView.SelectedItem.Index = ListView.SelectedItem.Index - 1 - og dette i FlytNedCmd_Click() ListView.SelectedItem.Index = ListView.SelectedItem.Index + 1
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.