投稿者 魔界の仮面弁士  (社会人) 投稿日時 2009/9/9 21:05:02
なお、TextBox2 のテキスト全体を書き換えるのではなく、
ドロップさせた位置にドロップしたテキスト挿入させたいのであれば
TextBox2 の部分を以下のように書き換えてみてください。


Private Sub TextBox2_DragOver(ByVal sender As ObjectByVal e As DragEventArgs) Handles TextBox2.DragOver
    If e.Data.GetDataPresent(GetType(String)) Then
        'Shift キーが押されていれば移動扱い/押されていなければコピー 
        Dim IsShift As Boolean = CBool(ModifierKeys And Keys.Shift)
        If IsShift AndAlso CBool(e.AllowedEffect And DragDropEffects.Copy) Then
            e.Effect = DragDropEffects.Move
        ElseIf CBool(e.AllowedEffect And DragDropEffects.Copy) Then
            e.Effect = DragDropEffects.Copy
        End If
        Dim mousePos As Point = TextBox2.PointToClient(MousePosition)
        Dim caretPos As Integer = TextBox2.GetCharIndexFromPosition(mousePos)
        TextBox2.SelectionStart = caretPos
        TextBox2.Focus()
    End If
End Sub

Private Sub TextBox2_DragDrop(ByVal sender As ObjectByVal e As DragEventArgs) Handles TextBox2.DragDrop
    TextBox2.SelectedText = e.Data.GetData(GetType(String))
End Sub