2007-02-09 15:47:50

リストビューでドラッグドロップで処理を可能にする

テーマ:vb.netプログラミングの基本

リストビューを2つ表示させ、片方のリストをドラッグし、もう片方にコピーする方法を紹介します。


(1)ドラッグドロップされる側のリストビューのプロパティでAllowDropをTrueにする

(2)ドラッグドロップされる側のリストビューにItemDragイベントを作成する。

(3)ドラッグドロップする側のリストビューにDragEnterイベントを作成する。

(4)ドラッグドロップする側のリストビューにDragDropイベントを作成する。


実際は、DoDragDrop関数の第1引数でデータを渡し、受け側でそのデータに対して処理を行いますが、下記の例では、Testという文字列だけを渡すようになってます。


    Private Sub From_ItemDrag(ByVal sender As Object, ByVal e As System.Windows.Forms.ItemDragEventArgs) Handles From.ItemDrag
        Dim strCmd As String

        '選択したオブジェクトをドラッグ
        strCmd = "Test"
        DoDragDrop(strCmd, DragDropEffects.Copy)

    End Sub


    Private Sub To_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles To.DragEnter

        '有効なドラッグか?
        If e.Data.GetDataPresent(GetType(String)) = True Then
            If CStr(e.Data.GetData(GetType(String))) = "Test" Then
                e.Effect = DragDropEffects.Copy
            End If
        End If

    End Sub


    Private Sub To_DragDrop(ByVal sender As Object, ByVal e As

System.Windows.Forms.DragEventArgs) Handles To.DragDrop

        '有効なドラッグか?
        If e.Data.GetDataPresent(GetType(String)) = True Then
            If CStr(e.Data.GetData(GetType(String))) = "Test" Then
                'ここでデータに対する処理を行う
            End If
        End If

    End Sub


  • なうで紹介
  • mixiチェック
  • ツイートする

コメント

[コメント記入欄を表示]

コメント投稿

コメント記入欄を表示するには、下記のボタンを押してください。
※新しくブラウザが別ウィンドウで開きます。

一緒にプレゼントも贈ろう!

アメーバに会員登録して、ブログをつくろう! powered by Ameba (アメーバ)|ブログを中心とした登録無料サイト