Drag and Drop

23/08/2011 - 08:00 von Lothar Geyer | Report spam
Ich will in einer Multiline TextBox einen Text markieren und dann den
markierten Text (.SelText) mit der Maus in eine SingleLine Textbox
verschieben. Ich schaffe das aber nicht. Kann mir bitte jemand helfen?

Lothar Geyer
 

Lesen sie die antworten

#1 G.Wietzorek
23/08/2011 - 12:29 | Warnen spam
Am 23.08.2011 08:00, schrieb Lothar Geyer:
Ich will in einer Multiline TextBox einen Text markieren und dann den
markierten Text (.SelText) mit der Maus in eine SingleLine Textbox
verschieben. Ich schaffe das aber nicht. Kann mir bitte jemand helfen?




Setze in der Multiline Textbox (text1) OLEDRAGMODE auf 1, Ziel ist text2
dann (hier nur kopieren zugelassen):

Private Sub Text1_OLEStartDrag(Data As DataObject, _
AllowedEffects As Long)
Text2.OLEDropMode = 2
AllowedEffects = vbDropEffectCopy
End Sub
Private Sub Text2_OLEDragOver(Data As DataObject, _
Effect As Long, _
Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single, _
State As Integer)
Select Case (Effect And vbDropEffectCopy)
Case vbDropEffectCopy
If Data.GetFormat(vbCFText) Then
Effect = vbDropEffectCopy
Else
Effect = vbDropEffectNone
End If
Case Else
Effect = vbDropEffectNone
End Select
End Sub

Private Sub Text2_OLEDragDrop(Data As DataObject, _
Effect As Long, Button As Integer, _
Shift As Integer, _
X As Single, _
Y As Single)
If Effect And vbDropEffectCopy = vbDropEffectCopy Then
If Data.GetFormat(vbCFText) Then
Text2.SelText = Data.GetData(vbCFText)
End If
End If
Text2.OLEDropMode = 0
End Sub


wenn Du auch verschieben zulassen willst (also Quelle löschen) musst Du
die zulàssigen Effekte noch àndern und brauchst auch noch

Private Sub Text1_OLECompleteDrag(Effect As Long)
Select Case (Effect And vbDropEffectMove)
Case vbDropEffectMove
Text1.SelText = ""
End Select
End Sub


Gert

"Probleme kann man niemals mit derselben Denkweise lösen, durch die sie
entstanden sind."
Albert Einstein

Ähnliche fragen