Я сделал это с помощью нескольких кнопок, таких как «Добавить», «Редактировать», «Удалить», «Отмена», «ОК», «Выход» и т. Д. ... В дополнение к тому, что все мои кнопки, метки, текстовые поля и т. Д. Были сохранены моим собственным стандартным шрифтомразмеры, цвета и т. д. Для текста на каждой подклассной кнопке я сделал что-то вроде ...
[ReadOnly(true)]
public override string Text
{ get { return "&Exit Application"; } }
Никогда не нужно беспокоиться о «установщике», поскольку текст кнопки никогда не должен изменяться вконструктор или производное ...
EDIT - более полный образец ...
public class MyButton : Button
{
[ReadOnly(true)]
public sealed override Font Font
{ get { return new Font("Arial", 9F, FontStyle.Italic, GraphicsUnit.Point); } }
[ReadOnly(true)]
public sealed override Color ForeColor
{ get { return Color.Blue; } }
public GDITButton()
{ }
}
public class MyExitButton : MyButton
{
[ReadOnly(true)]
public override string Text
{ get { return "Exit"; } }
public MyExitButton()
{}
}
public class MyAddButton : MyButton
{
[ReadOnly(true)]
public override string Text
{ get { return "Add"; } }
public MyAddButton()
{}
}
Затем, когда вы помещаете экземпляр MyExitButton или MyAddButton в форму, он будет FORCEподпись для вас, а также помешает вам изменить ее, так как это свойство только для чтения соответствующего класса.