是否可以确定 ActiveX 控件的哪个属性是默认属性?例如,VB6 控件 CommandButton 的默认属性是什么以及如何找到其他控件的默认属性!

/编辑: 没有对象本身的来源

有帮助吗?

解决方案 3

使用 OLE/Com 对象查看器,它随 Microsoft Visual Studio 一起分发。

转到类型库并找到控件所在的库,例如 CommandButton 存储在 Microsoft Forms 2.0 对象库. 。右键单击库并选择视图。找到代表该控件的组件类并选择它:

alt text

可以看出,CommandButton 的默认接口是 ICommandButton,当您检查 ICommandButton 时,会查找 dispid 为 0 的属性。CommandButton 的 dispid 0 属性的 IDL 为:

[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();

向您显示默认属性。

其他提示

我不使用 VB,但就这样吧。

我发现 使用控件的值, ,但这不是一个编程解决方案。如果您有权访问该代码,请查找

Attribute Value.VB_UserMemId = 0

使用记事本。

这取决于你什么时候想确定这一点。您可以将标签控件(没有“value”属性)的“值”打印到调试器,如下所示:

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

这会给你类似的东西:

cmdTest 的值为 [False]

事实证明,命令按钮的默认值是它的状态(按下或未按下),因此如果将上面的代码示例放在控件的单击事件中,如果您在其他地方执行它,您将看到“True” ,你会看到“False”。

对于其他结果,此方法至少会向您显示您正在寻找的属性类型。你可以使用:

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

它告诉你实际的类型,即:

cmdTest 的值是 [Boolean] 类型

您可以使用各种方法来缩小范围,例如设置值并查看会发生什么。

您有权访问该代码,请查找

不幸的是,我无法访问大多数控件的代码。然而,该链接对于 Microsoft 控件很有用,但我仍然想要一种了解其他控件的方法。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top