ドラッグアンドドロップでファイルを関連付けでオープンする 【注意書き】●VB.NET を使っているものとします。●動作環境は、Windows XX を使用しているとします。.NET でも、ドラッグアンドドロップでファイルを関連付けでオープンすることが可能です。この機能を使えば、簡単に、アプリケーション側でドラッグアンドドロップに対応したファイル操作を行いたい場合などに活用できます。フォームに次の様なコードを記述します-----------VB.NETコーディングここから-------------------1.フォームに、リストボックスコントロール を配置します。 下記は、デフォルトのオブジェクトの名前と配置を示しています。 ┏━━━━━━━━━━━━┓ ┃ListBox1 ┃ ┃ ┃ ┃ ┃ ┗━━━━━━━━━━━━┛2.フォームをダブルクリックして、 フォームロードイベントのコード編集を開始して、 次のコードを記述します。 Dim MjstrPicPath As String Private Sub Form1_DragDrop(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles MyBase.DragDrop MjstrPicPath = e.Data.GetData(DataFormats.FileDrop)(0) If Dir(MjstrPicPath) <> "" Then 'ファイルの一覧に追加 ListBox1.Items.Add(MjstrPicPath) OPN_FILE(MjstrPicPath) End If End Sub Private Sub Form1_DragEnter(ByVal sender As Object, _ ByVal e As System.Windows.Forms.DragEventArgs) _ Handles MyBase.DragEnter '関連連づけの確認をしています。 'この場合、ドラッグアンドドロップの形式であるかどうか? If e.Data.GetDataPresent(DataFormats.FileDrop) Then 'ドロップ効果を取得 e.Effect = DragDropEffects.Copy Else 'ドロップ効果を破棄 e.Effect = DragDropEffects.None End If End Sub Private Sub Form1_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles MyBase.Load Me.AllowDrop = True End Sub Private Sub ListBox1_DoubleClick(ByVal sender As Object, _ ByVal e As System.EventArgs) Handles ListBox1.DoubleClick MjstrPicPath = ListBox1.SelectedItem 'オープン対象のパスを関連付けられた 'アプリケーションから起動するようにしています。 OPN_FILE(MjstrPicPath) End Sub Sub OPN_FILE(ByVal PistrPath As String) 'オープン対象のパスを関連付けられた 'アプリケーションから起動するようにしています。 System.Diagnostics.Process.Start(PistrPath) End Sub3.ビルドして実行します。4.関連付けられた適当なファイル(例えばテキストファイル)などを フォームにドラッグアンドドロップでドロップします。5.フォームに表示された リストボックスに、ドラッグアンドドロップした ファイルのパスが表示されます。6.同時に、関連付けられたアプリケーションで ファイルがオープンされます。-----------VB.NETコーディングここまで-------------------本サンプルでは、エクスプローラ等から、ファイルのドラッグアンドドロップの操作でファイルのパスを受け取っています。関連付けられたアプリケーションからオープンする System.Diagnostics.Process.Start(PistrPath)でファイルのオープンを行っています。また、リストボックスの一覧でダブルクリックするとそのファイルをオープンする事を可能にしています。
Copyright(c)2001-2004 Ai Net Makoto 記事・情報の無断転載を禁止します。