残念ながら、古い 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 では、コンボアイテム コレクションにアイテムを追加するときに、3 番目のパラメーター ("Text") を設定する必要があります。すると画像が表示されます。空の文字列 "" を設定できます。
イメージ リストをコンボに割り当てるだけでは不十分です。アイテムも追加する必要があります。
ImageCombo1.ComboItems.Add 1, "key1", "text1", 1
ImageCombo1.ComboItems.Add 2, "key2", "text2", 2
そして、展開時にバイナリ互換性が何であるかを覚えておく必要があります。なんてこった、VB6 以降の私たちの進歩… .Net 万歳。
おそらく、MSCOMCTL.OCX が正しく登録されていないか、お使いの Windows と互換性がありません。コマンド プロンプトを開いて管理者として実行し、次のコマンドを入力してください。
Regsvr32 MSCOMCTL.OCX
問題が解決しない場合は、新しい MSCOMCTL.OCX をダウンロードして、再度登録してください。次のリンクから MSCOMCTL.OCX をダウンロードできます: Mscomctl.zip