读书人

关于自定义控件的属性窗口构造函数

发布时间: 2013-06-19 10:26:41 作者: rapoo

【求助】关于自定义控件的属性窗口,构造函数,问题。
我有如下自定义的控件:


Imports System.Windows.Forms

Public Class CLabel
Inherits Label

Private m_text As String

Sub New()
m_text = Me.Text ‘//下一个断点
End Sub

End Class


我现在把这个控件放在窗体上,然后用“属性”窗口编辑其属性,让Text = "456" ,然后在窗体上可以看到已经改变了。F5之后,断点处显示 Me.Text = ""

也就是说,我在属性窗口所作的更改在构造函数中无法得到。但事实上出来的窗口显示正常456。

于是我就纠结了,我想在New()里面得到在属性窗口里所作的更改,来进行其他的一些初始化,怎么破?属性窗口里面应该是改的Designer.vb里面的代码,在类构造函数里面怎么获得?



[解决办法]
捕获不了,因为构造函数先于属性设置之前执行。
你可以重写Text属性拦截。
<SettingsBindableAttribute(True)> _
Public Overrides Property Text As String
Get
return MyBase.Text
End Get
Set
'触发改变的代码
MyBase.Text = value
End Set
End Property

读书人网 >VB Dotnet

热点推荐