【问题标题】:How to get image from vb6 MSFlexGrid OLEDragDrop event如何从 vb6 MSFlexGrid OLEDragDrop 事件中获取图像
【发布时间】:2010-01-28 13:35:14
【问题描述】:

我有一个从 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

【问题讨论】:

    标签: vb.net image vb6-migration oledragdrop


    【解决方案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)
    

    【讨论】:

    • 您知道这些命令在 VB.NET 中的等效项是什么吗?
    • 对不起,我的意思是问这是否可以在没有 VB6 库的情况下完成。我正在寻找的命名空间是System.Drawing.Image,我认为我看错了问题。我只需要把大块代码扔出窗外。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多