いつもお世話になっております。
Windows7環境では使用できていましたファイルドラッグアンドドロップですが
Windows10環境ではできなくなってしまいました。
.Net Frameworkのバージョンを4以降にしてビルドすれば解決するであろうことは分かりましたが
現在のアプリケーションが.Net Framework2.0の時代に作成されたもので最新環境へ移行するまでの
間は使用せざるをえない状況です。
任意のフォルダにあるファイルを、Form上にドラッグアンドドロップして所定のフォルダへコピー
を行うという機能をもつFormですが、ドラッグアンドドロップができなくて困っている状況です。
コードの調整等でドラッグアンドドロップが実現するものでしょうか?
たいへん恐縮ですが、ご存じの方がおられましたらご教示をお願いいたします。
(開発環境)
VisualBasic 2005
WindowsXP SP3
.Net Framework2.0
(実行環境)
Windows10 20H2
.Net Framework3.5有効化
(処理部分コード)
Private Sub frm_File_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load Try Me.AllowDrop = True ' サイズ変更不可の直線ウィンドウに変更する Me.FormBorderStyle = FormBorderStyle.FixedSingle Catch ex As Exception End Try End Sub Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles MyBase.DragEnter 'データ形式の確認 If e.Data.GetDataPresent(DataFormats.FileDrop) = False Then Return End If 'ドラッグしているファイル/フォルダの取得 Dim FilePath() As String = _ CType(e.Data.GetData(DataFormats.FileDrop), String()) For idx As Integer = 0 To FilePath.Length - 1 If Not System.IO.File.Exists(FilePath(idx)) Then Return End If Next idx 'ドロップ可能な場合は、エフェクトを変える e.Effect = DragDropEffects.Copy End Sub Private Sub Form1_DragDrop(ByVal sender As Object, ByVal e As DragEventArgs) Handles MyBase.DragDrop 'ドラッグしているファイル/フォルダの取得 Dim FilePath() As String = CType(e.Data.GetData(DataFormats.FileDrop), String()) 'ファイルパスをリッチテキスト(FilePathRichText)に表示する RichTextBox1.Clear() For idx As Integer = 0 To FilePath.Length - 1 RichTextBox1.AppendText(FilePath(idx) & System.Environment.NewLine) Next idx End Sub
あなたの回答
tips
プレビュー