- 題名: ドラッグ&ドロップ
- 日時: 2004/10/04 18:56:28
- ID: 6483
- この記事の返信元:
- (なし)
- この記事への返信:
- [6490] Re[1]: ドラッグ&ドロップ2004/10/05 2:45:14
- ツリーを表示
少々長くなってしまいますが・・・
-----------------コード部分---------------------------------
' ListView1からドラッグ開始
Private Sub ListView1_ItemDrag( _
ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.ItemDragEventArgs) _
Handles ListView1.ItemDrag
' マウスの左ボタンでドラッグ?
If e.Button = MouseButtons.Left Then
Dim _listView As ListView
_listView = CType(sender, ListView)
' 複数項目選択?
If _listView.SelectedItems.Count >= 2 Then
DoDragDrop(_listView.SelectedItems, _
DragDropEffects.Move Or DragDropEffects.Copy)
Else
DoDragDrop(e.Item, _
DragDropEffects.Move Or DragDropEffects.Copy)
End If
End If
End Sub
' ListView2へドラッグ中
Private Sub ListView2_DragOver( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) _
Handles ListView2.DragOver
' ドロップされたデータが何か調べる
If e.Data.GetDataPresent(GetType(ListViewItem)) Then
e.Effect = DragDropEffects.Copy Or DragDropEffects.Move
ElseIf e.Data.GetDataPresent( _
GetType(ListView.SelectedListViewItemCollection)) Then
e.Effect = DragDropEffects.Copy Or DragDropEffects.Move
Else
e.Effect = DragDropEffects.None
End If
End Sub
' ListView2へドロップ
Private Sub ListView2_DragDrop( _
ByVal sender As Object, _
ByVal e As System.Windows.Forms.DragEventArgs) _
Handles ListView2.DragDrop
' ドロップされたデータが何か調べる
If e.Data.GetDataPresent(GetType(ListViewItem)) Then
' ListViewItem 単一選択時
' ドロップされたデータの取得
Dim mitem As ListViewItem = e.Data.GetData(GetType(ListViewItem))
' 処理
ElseIf e.Data.GetDataPresent( _
GetType(ListView.SelectedListViewItemCollection)) Then
' ListViewItem 複数選択時
' ドロップされたデータの取得
Dim mitem As ListView.SelectedListViewItemCollection = _
e.Data.GetData( _
GetType(ListView.SelectedListViewItemCollection))
' 処理
End If
End Sub
------------------------------------------------------------
ListView2_DragOverはListView2_DragEnterでも対応できます。
DragEnterはそのコントロール内にドラッグされたときに発生し、
DragOverはそのコントロール内でドラッグされている最中発生します。
必要なほうで対応して下さい。
ListView2のAllowDropプロパティをTrueにするのを忘れないで下さい。
また、そのコントロール外へドラッグされた時には
DragLeaveイベントが発生します。
調べてみるといいかもしれません。
レスが遅くなってしまってすみませんでした。
分類:[.NET]
二つのリストボックス間で、複数選択のデータをドラッグ&ドロップする方法を教えてください。