winform程序,自己建立类MyButton,继承自Button,设置text属性为“添加(&N)”,设计时,将其放置到窗体上时,该按钮文本显示MyButton1,怎样让其显示自定义的text,即“添加(&N)”?这样以后使用添加按钮时就不用改text属性了.在该类的如下方法中都加了this.Text = "添加(&N)";但仍然不起作用,经查发现,放置该按钮的窗体的.Designer.cs文件中自动增加了 this.myButton1.Text = "MyButton1";所以无论在MyButton类中怎样设置text,放置到窗体后,都被自动设置为MyButton1,该问题大家怎样解决?
public MyButton()
{
InitializeComponent();
this.Text = "添加(&N)";
}public MyButton(IContainer container)
{
container.Add(this);
InitializeComponent();
this.Text = "添加(&N)";
}
public MyButton()
{
InitializeComponent();
this.Text = "添加(&N)";
}public MyButton(IContainer container)
{
container.Add(this);
InitializeComponent();
this.Text = "添加(&N)";
}
{
public override string Text
{
get
{
return "添加(&N)";
}
set
{
base.Text = "添加(&N)";
}
}
}
{
get
{
return "添加(&N))";
}
set
{
base.Text = value;
}
}
谢谢大家,但这样写,如果放置到窗体后又需要对text稍作修改,却不能修改了。有时要对text稍作调整.
public class MyButton : Button
{
string text = "添加(&N))";
public MyButton()
{
Text = "添加(&N)";
} public MyButton(IContainer container)
{
Text = "添加(&N)";
} public override string Text
{
get
{
return text;
}
set
{
//默认代码是this.myButton1.Text = "myButton1"; 加个判断就好 if (!value.Contains("myButton"))
{
text = value;
this.OnTextChanged(EventArgs.Empty);
}
}
} }
谢谢,经实验,两个构造方法中不使用Text = "添加(&N)";也可以。请问这方面的内容什么书上有介绍,想学习学习。
{
public override void InitializeNewComponent(IDictionary defaultValues)
{
base.InitializeNewComponent(defaultValues);
this.Control.Text = "xxxx";
}
}[Designer(typeof(mybuttonDesigner))]
public class mybutton:Button
{
}