Значки файлов Drag & drop на PictureBox Control исчезают после изменения размера и перекрытия окна - PullRequest
0 голосов
/ 12 марта 2019

У меня есть приложение, предназначенное для таких функций, как доска объявлений.И файлы типа text и pdf должны перетаскиваться в поле для изображений, содержащее макет здания, местоположение и т. Д. Я написал очень простой код функции перетаскивания в виде:

 Public Class Form1

Dim newIcon As Icon = New Icon("RedFlag.ico", New Size(16, 16))

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'Do nothing or initialization\ here
    Me.AllowDrop = True
    PictureBox1.AllowDrop = True
End Sub

Private Sub Form1_DragDrop(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragDrop
    Dim files() As String = e.Data.GetData(DataFormats.FileDrop)
    For Each path In files
        Debug.WriteLine(path & "    X=" & PictureBox1.PointToClient(New Point(e.X, e.Y)).X & "    Y=" & PictureBox1.PointToClient(New Point(e.X, e.Y)).Y)

        Dim g As Graphics = PictureBox1.CreateGraphics
        g.DrawIcon(newIcon, PictureBox1.PointToClient(New Point(e.X, e.Y)).X, PictureBox1.PointToClient(New Point(e.X, e.Y)).Y)
        'g.Dispose()
        'newIcon.Dispose()

    Next
End Sub

Private Sub Form1_DragEnter(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragEnter
    If e.Data.GetDataPresent(DataFormats.FileDrop) Then
        e.Effect = DragDropEffects.Copy
    End If
End Sub
Private Sub Form1_DragOver(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles PictureBox1.DragOver
    Me.Text = String.Format(("X{0}:Y{1}"), PictureBox1.PointToClient(New Point(e.X, e.Y)).X, PictureBox1.PointToClient(New Point(e.X, e.Y)).Y)
End Sub
  End Class

Значки, нарисованные на картинке, исчезают.

значки, нарисованные на картинке, исчезают, когда я изменяю размер окна или перекрываю окна.Пожалуйста, руководство.

...