Vb.net VB重载Textboxt BorderStyle属性,给出错误“;指定的强制转换无效;

Vb.net VB重载Textboxt BorderStyle属性,给出错误“;指定的强制转换无效;,vb.net,textbox,user-controls,overloading,Vb.net,Textbox,User Controls,Overloading,我创建了一个用户控件,其中文本框仅在底部有边框。 请看图片 我的问题是,当我在其他项目上使用控件并调整文本框的大小时,我收到一个错误“指定的强制转换无效”。重载与此有关吗 'In Module Public Enum BorderStyle As Byte None = 0 FixedSingle = 1 Fixed3D = 2 FixedBottom = 3 End Enum Public Class TextBox Inherits Windows

我创建了一个用户控件,其中文本框仅在底部有边框。 请看图片

我的问题是,当我在其他项目上使用控件并调整文本框的大小时,我收到一个错误“指定的强制转换无效”。重载与此有关吗

'In Module
Public Enum BorderStyle As Byte
    None = 0
    FixedSingle = 1
    Fixed3D = 2
    FixedBottom = 3
End Enum


Public Class TextBox
    Inherits Windows.Forms.TextBox

    Private _label As Windows.Forms.Label = Nothing
    Private _borderColor As Drawing.Color = Drawing.Color.Black
    Private _borderStyle As BorderStyle = BorderStyle.None

    Public Property BorderColor As Drawing.Color
        Get
            Return Me._borderColor
        End Get
        Set(value As Drawing.Color)
            Me._borderColor = value
            If Me._label IsNot Nothing Then Me._label.BackColor = value
        End Set
    End Property

    Public Overloads Property BorderStyle As BorderStyle
        Get
            Return Me._borderStyle
        End Get
        Set(value As BorderStyle)
            Me._borderStyle = value
            If Me._borderStyle = BorderStyle.None Then
                MyBase.BorderStyle = Windows.Forms.BorderStyle.None
                If Me._label IsNot Nothing Then Me.Controls.Remove(Me._label)
            ElseIf Me._borderStyle = BorderStyle.Fixed3D Then
                MyBase.BorderStyle = Windows.Forms.BorderStyle.Fixed3D
                If Me._label IsNot Nothing Then Me.Controls.Remove(Me._label)
            ElseIf Me._borderStyle = BorderStyle.FixedSingle Then
                MyBase.BorderStyle = Windows.Forms.BorderStyle.FixedSingle
                If Me._label IsNot Nothing Then Me.Controls.Remove(Me._label)
            Else
                MyBase.BorderStyle = Windows.Forms.BorderStyle.None
                Me._label = New Windows.Forms.Label With {
                    .Height = 1,
                    .Dock = Windows.Forms.DockStyle.Bottom,
                    .BackColor = Me._borderColor
                }
                Me.Controls.Add(Me._label)
            End If
        End Set
    End Property
End Class

请注意,“用户控件”是继承
UserControl
的类。您创建了一个“自定义控件”。您能看到异常的堆栈跟踪吗?这将告诉你它被扔到哪里。请看这张图片。当我收到错误时,我正在使用designer。当我调整控件的大小时,会出现错误。