Я пытаюсь использовать перетаскивание изображений между двумя программами. В приложении-отправителе
Private Sub PictureBox1_MouseDown(sender As Object, e As MouseEventArgs) Handles PictureBox1.MouseDown
If e.Button = Windows.Forms.MouseButtons.Left Then
Dim drop_effect As DragDropEffects = PictureBox1.DoDragDrop(PictureBox1.Image, DragDropEffects.Copy)
End If
End Sub
И в приложении-получателе
Private Sub PictureBox1_DragEnter(sender As Object, e As DragEventArgs) Handles PictureBox1.DragEnter
If e.Data.GetDataPresent(DataFormats.Bitmap, True) Then
e.Effect = DragDropEffects.Copy
ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then
e.Effect = DragDropEffects.Copy
End If
End Sub
Private Sub PictureBox1_DragDrop(sender As Object, e As DragEventArgs) Handles PictureBox1.DragDrop
If e.Data.GetDataPresent(DataFormats.Bitmap) Then
PictureBox1.Image =DirectCast(e.Data.GetData(DataFormats.Bitmap), Image)
ElseIf e.Data.GetDataPresent(DataFormats.FileDrop) Then
Dim files() As String = DirectCast(e.Data.GetData(DataFormats.FileDrop), String())
Dim Bait = My.Computer.FileSystem.ReadAllBytes(files(0))
End If
End Sub
Остановка отбрасывания с длинным сообщением
System.InvalidCastException: 'Невозможно привести объект COM к введите 'System .__ ComObject' к типу класса 'System.Drawing.Image'. Экземпляры типов, которые представляют компоненты COM, не могут быть преобразованы в типы, которые не представляют компоненты COM; однако их можно приводить к интерфейсам, если базовый компонент COM поддерживает вызовы QueryInterface для IID интерфейса. '
Я нашел много примеров в inte rnet и попробовал их. Те, кто прошел компиляцию, дали ту же ошибку. Вариант, который я попробовал, состоял в том, чтобы изменить прямой бросок, чтобы попробовать бросок или вообще не бросать. Пожалуйста, помогите и используйте VB.