Как получить изображение из события vF6 MSFlexGrid OLEDragDrop - PullRequest
2 голосов
/ 28 января 2010

У меня есть проект 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 Ответ

1 голос
/ 28 января 2010

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

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

или

* +1007 *
...