ssCAROのブログ

色んなとこで見つけたプログラムのメモ置き場っぽい

継承したコントロールのTextの初期値を変更する

Buttonを継承してカスタムコントロール(以下SearchButton)を作成した。
SearchButtonには虫眼鏡のアイコンを設定したけど、ツールボックスから配置するとTextにSearchButton1と入ってしまう。
別にTextを削除すれば良いのだけど、最初から空白が入れば良いなと思ってコンストラクタでMyBase.Textに空白を設定したけど空白にならなかった。

調べてみて次のコードで実現できた。
参照:System.Design.dll

Imports System.ComponentModel

Public Class ControlDesignerEx
    Inherits System.Windows.Forms.Design.ControlDesigner

    Public Overrides Sub InitializeNewComponent(ByVal defaultValues As System.Collections.IDictionary)
        MyBase.InitializeNewComponent(defaultValues)
        Me.Control.Text = ""
    End Sub
End Class

<Designer(GetType(ControlDesignerEx))>
Public Class SearchButton
    Inherits Button

    Public Sub New()
        MyBase.New()
        MyBase.Image = UserCtrl.My.Resources.Resources.SearchIcon
    End Sub
End Class