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 に答える