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。当我调整控件的大小时,会出现错误。