1

Form.TextをオーバーライドTitleして、フォームに表示される前に変更しようとしています。

概念実証として、次のクラスを作成しました。これは、から直接継承する代わりに使用されFormます。

public class FormWithVersionNumber : Form
{
    [SettingsBindable(true)]
    public override string Text
    { 
        get
        {
            return "tester";
        }

    }
}

これから継承するすべてのフォームにタイトル"tester"があると思っていましたが、代わりに常に空白です。私はブレークポイントを経験してきましたが、これが発生する理由がわかりません。では、その理由は何ですか?

4

1 に答える 1

3

実際Titleはから取得されるのではなくText、 の内部プロパティから取得されるためWindowTextですControl

以下に、その方法の例を示します。

public partial class FormWithVersionNumber : Form
{
    public override sealed string Text
    {
        get
        {
            return base.Text + " 1.0.0.0";
        }
        set
        {
            base.Text = value + " 1.0.0.0";
        }
    }


    public FormWithVersionNumber()
    {
        InitializeComponent();

        Text = "Some Title";
    }
}
于 2012-07-02T08:59:51.690 に答える