Skip to content

SerializeInfo 类型(UDT)

自定义控件的每实例序列化器,由 CustomControlContext.GetSerializer 返回。主入口是 RuntimeUISrzDeserialize——从控件的 Initialize 调用,以加载保存到窗体序列化数据中的设计器属性值。其余成员暴露框架状态——设计模式标志、运行时/报告模式、所有者窗口句柄——控件在初始化时可能需要。

vb
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,它只在 IsDesignModeTrue 时绘制其 🕑 图标——在 Initialize 期间读取此标志。

语法:SerializeInfo.RuntimeUISrzIsDesignMode ( ) As Boolean

RuntimeUISrzIsReportMode

如果控件作为报告渲染过程的一部分被创建,则返回 True

语法:SerializeInfo.RuntimeUISrzIsReportMode ( ) As Boolean

RuntimeUISrzIsRuntimeAdded

如果控件是在运行时添加的(通过 CustomControlsCollection.Add)而非在窗体设计器中放置的,则返回 True

语法:SerializeInfo.RuntimeUISrzIsRuntimeAdded ( ) As Boolean

twinBASIC及其LOGO版权为作者"韦恩"所有