SerializeInfo 类型(UDT)
自定义控件的每实例序列化器,由 CustomControlContext.GetSerializer 返回。主入口是 RuntimeUISrzDeserialize——从控件的 Initialize 调用,以加载保存到窗体序列化数据中的设计器属性值。其余成员暴露框架状态——设计模式标志、运行时/报告模式、所有者窗口句柄——控件在初始化时可能需要。
Private Sub OnInitialize(ByVal Ctx As CustomControls.CustomControlContext) _
Implements CustomControls.ICustomControl.Initialize
With Ctx.GetSerializer
If Not .RuntimeUISrzDeserialize(Me, False) Then
InitializeDefaultValues
End If
Me.IsDesignMode = .RuntimeUISrzIsDesignMode()
End With
Set Me.ControlContext = Ctx
End Sub方法
RuntimeUISrzDeserialize
将此控件实例的序列化属性值加载到 Object 中。如果存在序列化数据并已应用则返回 True,如果未找到数据则返回 False——此时控件应应用自己的默认值。
语法:SerializeInfo.RuntimeUISrzDeserialize ( Object, UseOuterOwner ) As Boolean
- Object
- 必需 应填充属性的自定义控件实例。在 Initialize 实现内部,这是 Me。
- UseOuterOwner
- 必需 高级用途的 Boolean 标志;正常情况下传 False。
RuntimeUISrzGetFormHWND
返回父窗体底层 Win32 窗口的 HWND。
语法:SerializeInfo.RuntimeUISrzGetFormHWND ( ) As LongPtr
RuntimeUISrzGetOrientationHint
返回指示父窗体方向提示的值。Long。
语法:SerializeInfo.RuntimeUISrzGetOrientationHint ( ) As Long
RuntimeUISrzGetRootCLSID
返回拥有此控件的窗体类的 CLSID,以 String 形式。
语法:SerializeInfo.RuntimeUISrzGetRootCLSID ( ) As String
RuntimeUISrzGetRootClassDispatch
返回拥有此控件的窗体类实例,类型为 Object。
语法:SerializeInfo.RuntimeUISrzGetRootClassDispatch ( ) As Object
RuntimeUISrzIsDesignMode
如果控件在设计时(窗体设计器内部)被创建而非运行时,则返回 True。希望仅在设计时渲染占位符的控件——如 WaynesTimer,它只在 IsDesignMode 为 True 时绘制其 🕑 图标——在 Initialize 期间读取此标志。
语法:SerializeInfo.RuntimeUISrzIsDesignMode ( ) As Boolean
RuntimeUISrzIsReportMode
如果控件作为报告渲染过程的一部分被创建,则返回 True。
语法:SerializeInfo.RuntimeUISrzIsReportMode ( ) As Boolean
RuntimeUISrzIsRuntimeAdded
如果控件是在运行时添加的(通过 CustomControlsCollection.Add)而非在窗体设计器中放置的,则返回 True。
语法:SerializeInfo.RuntimeUISrzIsRuntimeAdded ( ) As Boolean