Как объявить ссылку на элемент управления ActiveX ListView в Access VBA?

Я использую Аксесс 2003.

В «Ссылки» («Инструменты» > «Ссылки» > «Обзор...») я добавил «Общие элементы управления Microsoft Windows 6.0 (SP6)» (c:\windows\system32\mscomctl.ocx) и создал/вставил экземпляр элемента управления "Microsoft ListView Control 6.0 (SP6)" в форме с присвоенным ему именем "MyListView".

Я хотел украсить MyListView некоторыми пользовательскими методами, поэтому я создал класс ("DecoratedListView"), который содержит поле-член ("lvw").

Я хочу, чтобы 'lvw' указывал/ссылался на MyListView, но я не знаю, какой тип ссылки использовать в его объявлении. Важно отметить, что я также хочу перехватить событие ColumnClick lvw.

Я пробовал:

Public WithEvents lvw As Object
Public WithEvents lvw As Control
Public WithEvents lvw As MSComctlLib.ListView.2

и никто не работает, когда я

set lvw = MyForm.MyListView

Кто-нибудь может объяснить, как мне создать ссылку (lvw) на существующий объект (MyListView)?


person PingPing    schedule 25.06.2015    source источник


Ответы (2)


Access не может справиться с такими вещами.

Тем не менее, OnClick должен быть доступен в вашей MyForm, но вы не можете видеть его на вкладке «Событие» в свойствах. Элементы управления ActiveX слишком сложны для этого. Вместо этого войдите в код и выберите MyListView в поле со списком в левом верхнем углу. Затем вы найдете расширенные события ActiveX в поле со списком в правом верхнем углу. Одним из них является ColumnClick.

Не уверен, каковы ваши полные намерения, но если вы хотите имитировать изолированный класс DecoratedListView, создайте специальную форму, которая включает только элемент управления ListView, и используйте ее в качестве подчиненной формы для других форм. Вы можете ссылаться на ListView из родительской формы, как и на любой другой объект управления подчиненной формы. Родительский код можно запустить из подчиненной формы списка, проверив объект me.parent.name, который в основном является родительской формой. Вы даже можете вызывать события listview подчиненной формы, изменив частную подпрограмму по умолчанию на общедоступную подпрограмму.

person PractLogical    schedule 26.06.2015

Я пока не могу комментировать, поэтому напишу как ответ. Вы смотрели в View, Object Browser, чтобы увидеть, какие методы и свойства доступны для этого объекта? Вы должны быть в состоянии написать то, что хотите, используя эту информацию, предполагая, что то, что вы хотите, возможно.

person BCole    schedule 26.06.2015