私のプロジェクトでは、ユーザーはいくつかのパスを定義する必要があります。ボタンをクリックすると、ウィンドウが開き、ファイル/フォルダーをウィンドウエクスプローラーからこのウィンドウにドラッグアンドドロップできます。次に、私のアプリケーションはそのパスを取り、それを保存します。
設定ページへのボタンがあるメインフォームがあります。これにより、form.showによって新しいフォームが開きます。この新しいフォームには、別のボタンがあります。それをクリックすると、物をドロップできる別の小さなフォームが開きます(form.show)。これは物事がトリッキーになるところです。ドラッグアンドドロップが機能しません。
Public Class drag
Private Sub dragdrop_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.TopMost = True
Me.AllowDrop = True
End Sub
Private Sub drag_DragDrop(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragDrop
Dim theFiles() As String = CType(e.Data.GetData("FileDrop", True), String())
For Each theFile As String In theFiles
MsgBox(theFile)
Next
End Sub
Private Sub drag_DragEnter(sender As System.Object, e As System.Windows.Forms.DragEventArgs) Handles Me.DragEnter
If e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
End Class
新しいプロジェクトを作成し、正確なコードをform1に貼り付けると、機能します。このマルチフォームプロジェクトで機能しないのはなぜですか?また、どうすれば修正できますか?