Jag hittade lite info här om dra & släpp, men det blev inte som jag hadde tänkt (aldrig sysslat med detta) Följande kod kanske kan peka lite i rätt riktning, men eftersom jag aldrig hållt på med drag & drop förut så finns det säkert någon enklare lösning. Just denna lösning kanske inte är världens bästa då man måste markera den text man vill dra och börja dra den utan att släppa musknappen emmelan eftersom själva markeringen försvinner så fort ett MouseDown inträffar inom textrutan. Man får väl hoppas att denna lösning hjälper på något sätt ändå. Nja, här är väll någonting galet. Vad du gör det svårt för dig... JAg har hittat svaret, det var bara att använda din kod, samt sätta OLEDragMode och OLEDropMode egenskaperna till Automatic för bägge kontrollerna. Då slipper man ifrån att markeringen går bort, och man får dessutom rätt ikon. Hej Andreas. jo jag vet att jag gör det svårt för mig, och jag skall göra det ännu svårare. Inte så svårt:Galet med drag och släpp
Så här är koden:
<code>
Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Drag vbBeginDrag
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Drag vbEndDrag
End Sub
Private Sub Text2_DragDrop(Source As Control, X As Single, Y As Single)
If TypeOf Source Is TextBox And Source.Name = "Text1" Then
Text2.text = Source.text
Text1.Drag vbEndDrag
End If
End Sub
</code>
På detta sättet så får jag över ALL text i Text1.
Jag ville kunna markera vissa avsnitt, sen dra detta över till text2.
Jag grunnar på selstart selleght?
Någon som har en kodsnutt om hur jag skall göra?Sv: Galet med drag och släpp
<code>Private Sub Text1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (X < 0) Or (Y < 0) Or (X > Text1.Width) Or (Y > Text1.Height) Then
Text1.Drag vbBeginDrag
End If
End Sub
Private Sub Text1_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
Text1.Drag vbEndDrag
End Sub
Private Sub Text2_DragDrop(Source As Control, X As Single, Y As Single)
If TypeOf Source Is TextBox And Source.Name = "Text1" Then
Text2.Text = Mid(Source.Text, Source.SelStart + 1, Source.SelLength)
Text1.Drag vbEndDrag
End If
End Sub</code>Sv: Galet med drag och släpp
Jag har kopierat din kod rakt up och ner, men får den inte att fungera.
Sen om jag har dragmode manuellt eller automatiskt spelar ingen roll, problem.
Jag kan markera texten men sedan så får jag den inte med mig.
Jag skulle vilja ha som i windows/words. Man markera ett stycke, släpper musen och trycker ner vänster musknapp en gång till, och sedan drar och släpper den där man vill ha den.
Borde finnas kod ex någonstans.Sv: Galet med drag och släpp
Ändra OLEDragMode för Text1 till 1 - vbOLEDragAutomatic
Ändra OLEDropMode för Text2 till 2 - vbOLEDropAutomatic
Ta bort din drag drop kod.
Du kommer nu kunna dra text från Text1 till text2 och andra applikationen.
Du kommer nu kunna dra text till Text2 från text1 och andra applikationen.Sv: Galet med drag och släpp
Sv: Galet med drag och släpp
Som du kanske såg, så hittade jag Oledrag osv, men vad jag skulle vilja är, när jag drar en markerad text t ex "heja på" så skulle jag vilja automatiskt ha med
" text1: "heja på""
Detta gör det ju betydligt knepigare.Sv: Galet med drag och släpp
<code>
Private Sub Text1_OLEStartDrag(Data As DataObject, AllowedEffects As Long)
Data.SetData "Text1: """ & Text1.SelText & """", vbCFText
End Sub
</code>