我试图覆盖Form.Text,以便在出现在表单之前修改Title
。
作为概念验证,我创建了这个类,它将用于代替直接继承Form
:
public class FormWithVersionNumber : Form
{
[SettingsBindable(true)]
public override string Text
{
get
{
return "tester";
}
}
}
我希望从中继承的所有表单都具有标题"tester"
,但它始终是空白的。我经历过断点,看不出有什么理由发生这种情况。那是什么原因?
答案 0 :(得分:2)
因为实际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";
}
}