2010-01-28 42 views
1

我有一個從VB6轉換到VB.NET的VB項目。如何從VB6獲取圖像MSFlexGrid OLEDragDrop事件

在這裏,我有一個MSFlexGrid用作互操作兼容性。這意味着它有點轉換爲.NET,但在內部,許多機制仍然來自VB6/COM。

我需要從圖片框(這是.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 

回答

0

我沒有VB6了,所以我可以「t檢驗這一點,但嘗試添加一個參考Microsoft.VisualBasic.Compatibility然後調用:

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

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