私は2つの(Telerik)TreeViewコントロールを持っています。それらをtvSourceおよびtvDestと呼ぶことにしましょう。私はtvSourceからtvDestに項目をドラッグ・アンド・ドロップしたい。私はこれをややうまく使っていますが、2つの問題が発生しています:ドラッグアンドドロップ:移動項目の代わりにコピー
1)これは現在項目を移動することです。代わりに、それらをtvSourceからtvDestにコピーして、アイテムをtvSourceに残しておきます。
2)アイテムをtvSourceコントロールからドラッグできるようにするには、DragDropを有効にする必要があります。これを有効にすると、ユーザーはtvSourceコントロール内でドラッグ&ドロップできます。これは私が望むものではありません。アイテムは、他のコントロール(tvDest)にドラッグ(コピー)することしかできません。
以下は、これまでの私のコードです:
Private blnMouseIsDown As Boolean = False
Private Sub tvSource_MouseDown(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles tvSource.MouseDown
blnMouseIsDown = True
End Sub
Private Sub tvDest_DragDrop(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles tvDest.DragDrop
Dim p As Point = tvDest.PointToClient(New Point(e.X, e.Y))
Dim hoverNode As RadTreeNode = tvDest.GetNodeAt(p.X, p.Y)
If hoverNode Is Nothing Then
tvDest.Nodes.Add(e.Data.GetData(DataFormats.Text).ToString())
Return
End If
End Sub
Private Sub tvDest_DragEnter(sender As Object, e As System.Windows.Forms.DragEventArgs) Handles tvDest.DragEnter
If e.Data.GetDataPresent(DataFormats.Text) Then
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub tvSource_MouseMove(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles tvSource.MouseMove
If blnMouseIsDown Then
tvSource.DoDragDrop(tvSource.SelectedNode.Name, DragDropEffects.Copy)
End If
blnMouseIsDown = False
End Sub
あなたは、そのコントロールで組み込みD + Dサポートと戦っているように私に聞こえます。 Telerikサポートフォーラムを使用してヘルプを検索してください。 –
@ハンス:Telerikのフォーラムはあまり良くありません。 Telerikはあまり使用されるコントロールセットなので、私の質問はもっと早く、より良い答えになると思います... –