以下のことで悩んでいます。
TextBoxコントロールを直接継承した独自のコントロールを作成し、画面に
貼り付けると、Textプロパティの初期値が自動的にコントロール名になり
ますが、これを自由に設定する方法はないでしょうか? 画面に貼り付け
た後、自分でTextプロパティを変更すればいいだけの話ですが、作成して
いるコントロールの仕様が初期値に"0"を設定するようになっているので。
(ちなみに初期値と規定値(DefaultValue)の違いは理解しています)
すいませんが、解る方がいましたらよろしくお願いします。
<Browsable(True), DefaultValue("規定値")> _
Public Overrides Property Text() As String
Get
Return MyBase.Text
End Get
Set(ByVal Value As String)
MyBase.Text = Value
End Set
End Property
私が以前
ttp://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=res&namber=7809&page=&no=0
で同じ質問したスレッドです
解決できましたので参考になるかと思います
理屈はよく解ってないのですが、できたみたいです(汗)
①ControlDesigner継承クラスを作成し、OnSetComponentDefaultsメソッドを
空でOverridesする。
Public Class cmnTxtControlDesigner
Inherits System.Windows.Forms.Design.ControlDesigner
Public Overrides Sub OnSetComponentDefaults()
' 空
End Sub
End Class
②TextBox継承クラスの属性に①のクラスを追加
<Designer(GetType(cmnTxtControlDesigner))> _
Public Class ctlTextBox
これでTextプロパティにコントロール名が入るのを防げました。
ずっと悩んでいたので、有難うございました。
ただ、影響範囲がよく解っていないので、もう少しリンク先の(更に奥のリンク先の)
説明もよく読んでおきます。難しそうですが(苦笑)
ツイート | ![]() |