【问题标题】:Override default text for derived Windows Form control覆盖派生的 Windows 窗体控件的默认文本
【发布时间】:2010-02-19 02:56:31
【问题描述】:

当您将新按钮拖到 Windows 窗体上时,它会自动分配文本“button1”。如果您有一个继承了名为“CustomButton”的按钮的控件,那么在添加到表单时会自动为该控件分配文本“customButton1”。

是否可以将此文本默认为其他内容?例如,我可以将文本默认设置为“点击我!”当控件被拖到窗体上时?

【问题讨论】:

    标签: .net winforms windows-forms-designer


    【解决方案1】:

    最简单的方法是不使用标准的Text 属性,而是自己制作。

    如果您这样做,您应该覆盖Text 属性并应用[Browsable(false)]

    【讨论】:

    • 谢谢,这正是我最终使用一个名为 ButtonText 的新属性所做的。
    【解决方案2】:

    您是否尝试在派生控件的构造函数中设置Text 属性?

    public CustomButton() {
        Text = "Click me!";
    }
    

    如果您还希望您的文本显示为真正的默认值(即在属性窗口中不是粗体),您应该覆盖Text 属性并设置DefaultValue-属性:

    [DefaultValue("Click me!")]
    override string Text {
        get { return base.Text }
        set { base.Text = value; }
    }
    

    【讨论】:

    • 我认为这不会有帮助。
    • 我在发布之前尝试了一些类似的方法,似乎只要属性被称为 Text 某些东西在添加到表单时会覆盖它的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-17
    相关资源
    最近更新 更多