问题描述
在VB6窗体上托管的WinForms互操作UserControl是否可以通过这种方法来检索父窗体的AmbientProperties.usermode
值?
UserControl的DesignMode
属性为false,考虑到控件已被编译和注册,这是有道理的。
解决方法
这是一个有趣的问题。
根据此(https://docs.microsoft.com/en-us/windows/win32/com/ambient-properties),所有ActiveX控件容器都必须支持UserMode
Ambient属性。
尝试使用InvokeMember
通过IDispatch(https://docs.microsoft.com/en-us/dotnet/api/system.type.invokemember?view=netframework-4.8)调用UserMode
属性。