- 題名: ドラッグ&ドロップ
- 日時: 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]
二つのリストボックス間で、複数選択のデータをドラッグ&ドロップする方法を教えてください。