在C#中将Button.Text属性设置为自定义值
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导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。