【问题标题】:Populate picture box from eID vb.net从 eID vb.net 填充图片框
【发布时间】:2017-03-14 06:37:39
【问题描述】:

您好,我收到了可以读取 eID 卡、智能卡的表格 文本数据正确读取 图片框名称是 picLK 但最后一句话是图片

在我使用的 VB6 和 VBA 中

me.pctLK.Picture = ReaderEngine.portrait

ReaderEngine 是从卡中读取数据的程序

当我在 vb.net 中使用命令时出现错误

me.pctLK = ReaderEngine.portrait

读卡器正在读卡,但我收到了这条消息

Project1.exe 中发生了“System.InvalidCastException”类型的未处理异常

附加信息:无法将“stdole.StdPictureClass”类型的 COM 对象转换为“System.Windows.Forms.PictureBox”类类型。表示 COM 组件的类型的实例不能转换为不表示 COM 组件的类型;但是,只要底层 COM 组件支持对接口的 IID 的 QueryInterface 调用,它们就可以转换为接口。

我是 VB .net 的新手

有什么建议吗?

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    VB.NET 在Microsoft.VisualBasic.Compatibility.VB6.Support 模块中有一个辅助函数,名为IPictureDispToImage,它接受StdPictureClass 对象(实现IPictureDisp)并返回一个.NET System.Drawing.Image 对象,您可以将其分配给PictureBox.Image 属性。确保在完成后妥善处理 Image

    Dim comImage As StdOle.StdPictureClass = ReaderEngine.portrait
    If Me.picLK.Image Is Not Nothing Then
        Me.picLK.Image.Dispose()
        Me.picLK.Image = Nothing
    End If
    
    Dim newImage As System.Drawing.Image = Support.IPictureDispToImage( comImage )
    Me.picLK.Image = newImage
    

    【讨论】:

    • 一切正常,直到 line dim newImage,等号后没有支持选项,最后两行不起作用,我使用 Visual Studio 2015
    猜你喜欢
    • 2015-11-01
    • 2014-09-23
    • 2022-01-16
    • 1970-01-01
    • 2023-04-05
    • 1970-01-01
    • 1970-01-01
    • 2012-03-14
    • 2013-08-09
    相关资源
    最近更新 更多