當前位置: 首頁>>代碼示例>>VB.NET>>正文


VB.NET ControlDesigner.InvokeTransactedChange方法代碼示例

本文整理匯總了VB.NET中System.Web.UI.Design.ControlDesigner.InvokeTransactedChange方法的典型用法代碼示例。如果您正苦於以下問題:VB.NET ControlDesigner.InvokeTransactedChange方法的具體用法?VB.NET ControlDesigner.InvokeTransactedChange怎麽用?VB.NET ControlDesigner.InvokeTransactedChange使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Web.UI.Design.ControlDesigner的用法示例。


在下文中一共展示了ControlDesigner.InvokeTransactedChange方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的VB.NET代碼示例。

示例1: New

' 導入命名空間
Imports System.Web
Imports System.Web.UI
Imports System.Drawing
Imports System.Collections
Imports System.Web.UI.WebControls
Imports System.Web.UI.Design
Imports System.ComponentModel
Imports System.ComponentModel.Design

Namespace ASPNet.Samples

    ' Create a custom control class with a Label and TextBox
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.InheritanceDemand, Name:="FullTrust")> _
    <System.Security.Permissions.PermissionSetAttribute(System.Security.Permissions.SecurityAction.Demand, Name:="FullTrust")> _
    <Designer("ASPNet.Samples.SampleControlDesigner")> _
    Public Class SampleControl
        Inherits CompositeControl

        Dim defaultWidth As Integer = 150

        Public Sub New()

        End Sub

        ' Create a set of Public properties
        <Bindable(True), DefaultValue(""), _
            PersistenceMode(PersistenceMode.Attribute)> _
        Public Property LabelText() As String
            Get
                EnsureChildControls()
                Return MyLabel.Text
            End Get
            Set(ByVal value As String)
                EnsureChildControls()
                MyLabel.Text = value
            End Set
        End Property

        <Bindable(True), DefaultValue(""), _
            PersistenceMode(PersistenceMode.Attribute)> _
        Public Property BoxText() As String
            Get
                EnsureChildControls()
                Return MyTextBox.Text
            End Get
            Set(ByVal value As String)
                EnsureChildControls()
                MyTextBox.Text = value
            End Set
        End Property

        <Bindable(True), Category("Appearance"), _
            PersistenceMode(PersistenceMode.Attribute)> _
        Public Property BoxWidth() As Unit
            Get
                EnsureChildControls()
                Return MyTextBox.Width
            End Get
            Set(ByVal value As Unit)
                EnsureChildControls()
                MyTextBox.Width = value
            End Set
        End Property

        <Bindable(True), Category("Appearance"), _
            PersistenceMode(PersistenceMode.Attribute)> _
        Public Overrides Property BackColor() As Color
            Get
                EnsureChildControls()
                Return MyTextBox.BackColor()
            End Get
            Set(ByVal value As Color)
                EnsureChildControls()
                MyTextBox.BackColor = value
            End Set
        End Property

        ' Create private properties
        Private ReadOnly Property MyTextBox() As TextBox
            Get
                EnsureChildControls()
                Return CType(FindControl("MyTextBox"), TextBox)
            End Get
        End Property
        Private ReadOnly Property MyLabel() As Label
            Get
                EnsureChildControls()
                Return CType(FindControl("MyLabel"), Label)
            End Get
        End Property

        ' Create a Label and a TextBox
        Protected Overrides Sub CreateChildControls()
            Controls.Clear()
            MyBase.CreateChildControls()

            ' Create a Label control
            Dim localLabel As New Label()
            localLabel.ID = "MyLabel"
            localLabel.Text = localLabel.ID + ": "
            localLabel.EnableViewState = False
            Controls.Add(localLabel)

            ' Create a TextBox control
            Dim localTextBox As New TextBox()
            localTextBox.ID = "MyTextBox"
            localTextBox.Width = defaultWidth
            localTextBox.EnableViewState = False
            Controls.Add(localTextBox)
        End Sub
    End Class

    '-----------------------------------------------
    ' Create a designer class for the SampleControl
    <System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags:=System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
    Public Class SampleControlDesigner
        Inherits ControlDesigner

        Private sampControl As SampleControl

        ' Constructor
        Public Sub New()
            MyBase.New()
        End Sub

        ' Do not allow resizing; force use of properties to set width
        Public Overrides ReadOnly Property AllowResize() As Boolean
            Get
                Return False
            End Get
        End Property

        ' Create a custom ActionLists collection
        Public Overrides ReadOnly Property ActionLists() As DesignerActionListCollection
            Get
                ' Create the collection
                Dim lists As New DesignerActionListCollection()

                ' Get the base items, if any
                lists.AddRange(MyBase.ActionLists)

                ' Add my own list of actions
                lists.Add(New CustomControlActionList(Me))

                Return lists
            End Get
        End Property

        ' Create an embedded DesignerActionList class
        Private Class CustomControlActionList
            Inherits DesignerActionList

            ' Create private fields
            Private _parent As SampleControlDesigner
            Private _items As DesignerActionItemCollection

            ' Constructor
            Public Sub New(ByVal parent As SampleControlDesigner)
                MyBase.New(parent.Component)
                _parent = parent
            End Sub

            ' Create a set of transacted callback methods
            ' Callback for a wide format
            Public Sub FormatWide()
                Dim ctrl As SampleControl = CType(_parent.Component, SampleControl)

                ' Create the callback
                Dim toCall As New TransactedChangeCallback(AddressOf DoFormat)
                ' Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatWide", "Use a wide format")
            End Sub

            ' Callback for the medium format
            Public Sub FormatMedium()
                Dim ctrl As SampleControl = CType(_parent.Component, SampleControl)

                ' Create the callback
                Dim toCall As New TransactedChangeCallback(AddressOf DoFormat)
                ' Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatMedium", "Use a medium format")
            End Sub

            ' Callback for the narrow format
            Public Sub FormatNarrow()
                Dim ctrl As SampleControl = CType(_parent.Component, SampleControl)

                ' Create the callback
                Dim toCall As New TransactedChangeCallback(AddressOf DoFormat)
                ' Create the transacted change in the control
                ControlDesigner.InvokeTransactedChange(ctrl, toCall, "FormatNarrow", "Use a narrow format")
            End Sub

            ' Get the sorted list of Action items
            Public Overrides Function GetSortedActionItems() As DesignerActionItemCollection
                If IsNothing(_items) Then
                    ' Create the collection
                    _items = New DesignerActionItemCollection()

                    ' Add a header to the list
                    _items.Add(New DesignerActionHeaderItem("Select a Style:"))

                    ' Add three commands
                    _items.Add(New DesignerActionMethodItem(Me, "FormatWide", "Format Wide", True))
                    _items.Add(New DesignerActionMethodItem(Me, "FormatMedium", "Format Medium", True))
                    _items.Add(New DesignerActionMethodItem(Me, "FormatNarrow", "Format Narrow", True))
                End If

                Return _items
            End Function

            ' Function for the callback to call
            Public Function DoFormat(ByVal arg As Object) As Boolean
                ' Get a reference to the designer's associated component
                Dim ctl As SampleControl = CType(_parent.ViewControl(), SampleControl)

                ' Get the format name from the arg
                Dim fmt As String = CType(arg, String)

                ' Create property descriptors
                Dim widthProp As PropertyDescriptor = TypeDescriptor.GetProperties(ctl)("BoxWidth")
                Dim backColorProp As PropertyDescriptor = TypeDescriptor.GetProperties(ctl)("BackColor")

                ' For the selected format, set two properties
                Select Case fmt
                    Case "FormatWide"
                        widthProp.SetValue(ctl, Unit.Pixel(250))
                        backColorProp.SetValue(ctl, Color.LightBlue)
                    Case "FormatNarrow"
                        widthProp.SetValue(ctl, Unit.Pixel(100))
                        backColorProp.SetValue(ctl, Color.LightCoral)
                    Case "FormatMedium"
                        widthProp.SetValue(ctl, Unit.Pixel(150))
                        backColorProp.SetValue(ctl, Color.White)
                End Select

                ' Return an indication of success
                Return True

            End Function
        End Class
    End Class

End Namespace
開發者ID:VB.NET開發者,項目名稱:System.Web.UI.Design,代碼行數:245,代碼來源:ControlDesigner.InvokeTransactedChange


注:本文中的System.Web.UI.Design.ControlDesigner.InvokeTransactedChange方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。