⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wroxstyleconverter.vb

📁 ASP.NET服务器控件高级编程电子书
💻 VB
字号:
Imports System
Imports System.IO
Imports System.Web.UI
Imports System.Web.UI.Design
Imports System.Web.UI.WebControls
Imports System.ComponentModel
Imports System.ComponentModel.Design
Imports System.Collections

Namespace WroxDesignVB.Design

    Public Class WroxStylerConverter : Inherits TypeConverter

        Private _stylers As ArrayList = New ArrayList()
        Private WithEvents svc As IComponentChangeService

        Public Sub New()
        End Sub

        Public Overloads Overrides Function GetStandardValuesSupported( _
                ByVal context As ITypeDescriptorContext) As Boolean

            If Not (_stylers.Contains(context.Instance)) Then
                _stylers.Add(context.Instance)
                Return True
            End If
        End Function

        Public Overloads Overrides Function GetStandardValuesExclusive( _
                ByVal context As ITypeDescriptorContext) As Boolean
            Return True
        End Function

        Public Overloads Overrides Function GetStandardValues( _
                ByVal context As ITypeDescriptorContext) As StandardValuesCollection

            Dim list As System.Collections.ArrayList = New System.Collections.ArrayList()
            Dim comp As IComponent

            For Each comp In context.Container.Components
                If (TypeOf (comp) Is WroxButton) Then list.Add(CType(comp, WroxButton).ID)
            Next

            svc = CType(context.GetService(GetType(IComponentChangeService)), IComponentChangeService)

            Return New StandardValuesCollection(list)
        End Function

        Private Sub OnRemove(ByVal sender As Object, ByVal e As ComponentEventArgs) Handles svc.ComponentRemoved
            If (_stylers.Contains(e.Component)) Then _
                _stylers.Remove(e.Component)
        End Sub

        Private Sub OnRename(ByVal sender As Object, ByVal e As ComponentRenameEventArgs) Handles svc.ComponentRename
            If (TypeOf (e.Component) Is WroxButton) Then
                Dim st As WroxStyler
                For Each st In _stylers
                    If (e.OldName = st.RelatedButtonID) Then _
                        TypeDescriptor.GetProperties(st).Item("RelatedButtonID").SetValue(st, e.NewName)
                Next
            End If
        End Sub

    End Class
End Namespace

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -