Как получить изображение из события vb6 MSFlexGrid OLEDragDrop

У меня есть проект VB, который конвертируется из VB6 в VB.NET.

В этом у меня есть MSFlexGrid, который используется как совместимость взаимодействия. Это означает, что он несколько преобразован в.NET, но внутренне многие механизмы все еще из VB6/COM.

Мне нужно перетащить изображение из PictureBox (который является.NET) и поместить его на flexgrid.

Вот что я делаю, чтобы инициализировать перетаскивание:

Private Sub picStartSymbol_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles picStartSymbol.MouseDown
    picStartSymbol.DoDragDrop(picStartSymbol.Image, DragDropEffects.Copy)
End Sub

И здесь я ловлю падение FlexGrid:

Private Sub flxConstructionPoints_OLEDragDrop(ByVal sender As Object, ByVal e As AxMSFlexGridLib.DMSFlexGridEvents_OLEDragDropEvent) Handles flxConstructionPoints.OLEDragDrop

    Dim image As Image 
    Dim oleImage As Object
    oleImage = e.data.GetData(2) ''This gets an object of type 2 (bitmap)
    ''How to convert oleImage to a .NET Image?
End Sub

1 ответ

Решение

У меня больше нет VB6, поэтому я не могу проверить это, но попробуйте добавить ссылку на Microsoft.VisualBasic.Compatibility и затем вызовите:

Dim image as Image = Microsoft.VisualBasic.Compatibility.VB6.IPictureToImage(oleImage)

или же

Dim image as Image = Microsoft.VisualBasic.Compatibility.VB6.IPictureDispToImage(oleImage)
Другие вопросы по тегам