Я пытаюсь унаследовать от ToolStripLabel:
public class SeparatorLabel : ToolStripLabel
{
public SeparatorLabel() : base()
{
Margin = new Padding(5, 0, 5, 0);
Text = "ABC";
}
}
Однако, когда я помещаю такой элемент управления в форму, свойство Text
берется из значения, введенного в сетку свойств дизайнера.
Это, конечно, ожидаемо, поскольку мой конструктор вызывается до того, как свойства сетки свойств установлены (формы InitializeComponent()
), поэтому мои значения перезаписываются.
Вопрос - Какова стандартная практика для достижения такого поведения при наследовании от существующих элементов управления?
Я реализовал это, переопределив свойство Text
для включения пустого установщика, и когда я хочу обновить Text
элемента управления, я установил base.Text
вручную:
public class SeparatorLabel : ToolStripLabel
{
public SeparatorLabel() : base()
{
Margin = new Padding(5, 0, 5, 0);
base.Text = "ABC";
}
[Browsable(false)]
public override string Text
{
get
{
return base.Text;
}
set { }
}
}
Это работает, но я не уверен, что это лучшая практика. Есть ли какой-нибудь более традиционный способ добиться того, что мне нужно?