不幸的是,我需要对旧的 VB6 应用程序进行更改。我注意到 mscomctl.ocx 中的图像组合在 Windows 7 中无法正常工作。没有图像显示,即使它链接到图像列表控件,并且在 XP 中工作正常。
有谁知道为什么这可能在 Win 7 中损坏并建议修复?
好吧,以下对我有用,其中 ImageCombo 是我的 ImageCombo 框,而 ImageList 是我的 Image List 控件!
Private Sub Command_Click()
Set ImageCombo.ImageList = ImageList
With ImageCombo.ComboItems
.Add , "OPEN_FOLDER", "Open Folder", "IMG_OPEN_FOLDER"
.Add , "CLOSED_FOLDER", "Closed Folder", "IMG_CLOSED_FOLDER"
.Add , "NEW_DOCUMENT", "New Document", "IMG_NEW_DOCUMENT"
.Add , "PLUS", "Plus", "IMG_PLUS"
.Add , "MINUS", "Minus", "IMG_MINUS"
End With
End Sub
IMG_xxxx 是我的图像列表键。
MSCOMCTL.OCX
6.1.97.82 有效 6.1.98.33 无效
这是大版本
尝试使用 6.1.97.82
我得到了它!
在 6.1.98.33 版本中,当您向 comboitems 集合添加项目时,您必须设置第三个参数(“Text”)。然后将显示图像。您可以设置一个空字符串“”。
可能 MSCOMCTL.OCX 未正确注册或与您的 Windows 不兼容。请打开命令提示符并以管理员身份运行,然后键入以下命令:
Regsvr32 MSCOMCTL.OCX
如果问题仍然存在,请下载新的 MSCOMCTL.OCX 并重新注册。您可以从以下链接下载 MSCOMCTL.OCX: Mscomctl.zip
仅将图像列表分配给组合是不够的!还需要添加项目:
ImageCombo1.ComboItems.Add 1, "key1", "text1", 1
ImageCombo1.ComboItems.Add 2, "key2", "text2", 2
然后你必须记住部署时二进制兼容性是什么。天哪,自 VB6 以来我们所取得的进步…….Net 万岁。