使用 VB.net (2005),我正在创建一个包含文本框和按钮的自定义控件(文件夹选择器)。最近我添加了以下内容:
<Browsable(True), DefaultValue(""), DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)> _
Public Overrides Property Text() As String
Get
Return Me.uiPath.Text
End Get
Set(ByVal value As String)
Me.uiPath.Text = value
End Set
End Property
我遇到的问题是,现在创建控件时,文本框始终默认显示控件的名称(而不是空白)。似乎在调用 Sub New 后 Text 属性正在更改,但是,我检查了设计器,但看不到它在哪里执行此操作。
我知道更改属性名称可以解决问题,但我想知道为什么会这样(我猜它与标准设计器有关?),以及是否有办法解决(或解决方法)它,同时仍然使用 Text 属性?
我不知道这是否有任何区别,但我使用的是自定义设计器:
Public Class FolderPickerDesigner
Inherits Windows.Forms.Design.ControlDesigner
Public Overrides ReadOnly Property SnapLines() As IList
Get
Dim SnapLinesList As ArrayList = TryCast(MyBase.SnapLines, ArrayList)
If (Me.Control IsNot Nothing) AndAlso (Me.Control IsNot Nothing) Then
Dim FP As FolderPicker = CType(Me.Control, FolderPicker)
SnapLinesList.Add(New SnapLine(SnapLineType.Baseline, FP.uiPath.Bottom - 5, SnapLinePriority.Medium))
End If
Return SnapLinesList
End Get
End Property
End Class
任何帮助/想法将不胜感激。如果这没有/无法解决,我会将最有帮助的帖子标记为答案...