在C#中将Button.Text属性设置为自定义值

编程语言 2026-07-12
public Button()
{
    this.Size = new Size(100, 100);
    this.ForeColor = foreColor;
    this.BackColor = BackColor;
    this.Text = "Hello";    
}

我写了这个构造函数类来创建我自己的自定义按钮对象,但它总是把默认文本属性赋给文本,并且不接受我的值。我知道可以通过设计器来修改文本,但我想学习如何用代码来实现。


我已经找到了问题的根源:按钮的文本会根据我创建的类名自动设置。我在设计器之外找不到修复它的方法。有没有其他方法在不使用设计器的情况下设置按钮文本?

解决方案

问题在于设计器中定义的文本在调用按钮的构造函数之后,被 InitializeComponent() 设置。

你可以通过重写 Text 属性来解决这个问题:

public class HelloButton : Button
{
    [Browsable(false), DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)]
    public override string Text
    {
        get => "Hello";
        set { }
    }
}

属性 Browsable(false) 的意思是 Text 不会在属性窗口中显示。属性 DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden) 的意思是设计器不会保存 Text 属性的值。

站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章