Я экспериментирую с написанием элементов управления ActiveX и замечаю, что я не могу создать элемент управления ActiveX в Visual Basic (6.0), который имеет несколько более сложные элементы управления. Простые элементы управления, такие как метки, кнопки и флажки, работают нормально, но как только я пытаюсь добавить, например, элемент управления дерева в мою форму, элемент управления ActiveX остается полностью пустым, как только я внедряю его в какое-то хост-приложение на другом компьютере. Он отлично работает на моем ящике разработки.
Просматривая список Projects- > Components (Ctrl + T), я нашел две библиотеки, которые, по-видимому, содержат элемент управления деревом:
- Общие средства управления Microsoft Windows 5.0 (SP2)
- Общие средства управления Microsoft Windows 6.0 (SP6)
Как только я добавлю какие-либо элементы управления из этих библиотек в мою форму, форма остается полностью серой, когда она встроена на другой компьютер. Другой компьютер - это система Windows XP, поэтому я надеялся, что недостающие распространенные компоненты не будут проблемой, учитывая, как работает старый Visual Basic 6. Разумеется, я установил VB6-распространяемые компоненты, но, к сожалению, это не повлияло.
Кто-нибудь знает, почему мой элемент управления ActiveX останется серым на других компьютерах, но не на моем, как только я добавлю какой-либо элемент управления из перечисленных выше библиотек? FWIW Мне просто нужен древовидный контроль, поэтому, если есть какая-то другая, более подходящая библиотека, доступная мне, это прекрасно.
UPDATE:
Как оказалось, это помогает загрузить MSCOMCTL.OCX в C:\WINDOWS\SYSTEM32 на другом компьютере, а затем зарегистрировать его через regsvr32 C:\WINDOWS\SYSTEM32\MSCOMCTL.OCX
. Однако я не нашел официального источника для этого файла, и запуск регистрации COM вручную кажется мне громоздким. Разве действительно не существует распространяемого мною перераспределяемого?