2

我有一个从 VB6 转换为 VB.NET 的 VB 项目。

在此,我有一个用作互操作兼容性的 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
4

1 回答 1

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)
于 2010-01-28T15:05:07.193 回答