2008-09-03 2 views
1

Можно ли определить, какое свойство элемента управления ActiveX является свойством по умолчанию? Например, что является стандартным свойством элемента управления CommandButton VB6 и как бы я обнаружил какие-либо другие элементы управления по умолчанию!Определение свойства ActiveX по умолчанию

/EDIT: Не имея источник самого объекта

ответ

1

Используйте OLE/Com Object Viewer, который распространяется вместе с Microsoft Visual Studio.

Перейти к типу библиотеки и найти библиотеку управления находится в, например CommandButton хранится в Microsoft Forms Library 2.0 Object. Щелкните правой кнопкой мыши библиотеку и выберите вид.Найти компонентный класс, представляющий элемент управления и выберите его:

alt text

Как можно видеть, интерфейс по умолчанию для CommandButton является ICommandButton, когда вы проверяете ICommandButton искать имущество, которое имеет DISPID от 0. IDL для свойство dispid 0 CommandButton:

[id(00000000), propput, bindable, displaybind, hidden, helpcontext(0x001e8d04)] 
void Value([in] VARIANT_BOOL rhs); 
[id(00000000), propget, bindable, displaybind, hidden, helpcontext(0x001e8d04)] 
VARIANT_BOOL Value(); 

Показывает свойство по умолчанию.

1

Я не использую VB, но здесь оно идет.

Я нашел Using the Value of a Control, но это не программное решение. Если у вас есть доступ к коду, искать

Attribute Value.VB_UserMemId = 0 

с помощью блокнота.

1

у вас есть доступ к коду, искать

Unfortunetly У меня нет доступа к коду для большинства элементов управления. Однако ссылка полезна для Microsoft Controls, но мне все же хотелось бы узнать, как узнать другие элементы управления.

1

Это зависит от того, когда вы хотите это определить. Вы можете напечатать «ценность», скажем, контроля этикетки (который не имеет свойства «значения») в отладчик, как:

debug.print "Value for cmdTest is ["+format(cmdTest)+"]" 

который даст вам что-то вроде:

Соотношения cmdTest является [Ложная]

Как оказалось, значение по умолчанию для командной кнопки является это состояние (нажата или нет), так что если вы поставите пример кода выше в случае щелчка для управления, вы будете см. «Истина», если вы выполните его где-то еще, вы увидите «False».

Для других результатов этот метод по крайней мере покажет вам вид собственности, который вы ищете. Вы можете использовать:

debug.print "cmdTest's value is of type ["+TypeName(oObject) +"]" 

, рассказывающих фактический тип, а именно:

значение cmdTest является типа [Boolean]

Вы можете использовать различные методы, чтобы сузить вещи вниз, например, установить значение и посмотреть, что произойдет.

 Смежные вопросы

  • Нет связанных вопросов^_^