VB.NETのコントロールのTextプロパティの初期値について

解決


K4R  2004-12-17 18:57:52  No: 118349

以下のことで悩んでいます。

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


medaka  2004-12-17 22:04:40  No: 118350

私が以前
ttp://dobon.net/cgi-bin/vbbbs/cbbs.cgi?mode=res&namber=7809&page=&no=0
で同じ質問したスレッドです
解決できましたので参考になるかと思います


K4R  2004-12-18 01:46:53  No: 118351

理屈はよく解ってないのですが、できたみたいです(汗)

①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プロパティにコントロール名が入るのを防げました。

ずっと悩んでいたので、有難うございました。

ただ、影響範囲がよく解っていないので、もう少しリンク先の(更に奥のリンク先の)
説明もよく読んでおきます。難しそうですが(苦笑)


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加