Для группы элементов управления, которые являются связными и работают вместе как группа, я бы предложил создать пользовательский элемент управления .
Однако, для вашего примера кнопки закрытия (зачем вашим формам нужна одна сверх стандартной в строке заголовка?), Вы можете использовать наследование .
Все формы WinForms происходят от Form
. Но они не должны напрямую происходить от Form
. Таким образом, вы можете создать «шаблонную» форму, содержащую все ваши общие элементы управления, с соответствующим позиционированием и т. Д.
Затем, когда вы создаете новую форму, вы заходите в ее код и изменяете
public partial class NewForm : Form
до
public partial class NewForm : TemplateForm
Единственный небольшой неприятный момент в том, что вам придется перекомпилировать после каждого изменения шаблона, если вы хотите, чтобы конструктор для производных форм правильно отображал обновленные макеты.
Создайте новое приложение Windows Forms. Я выбрал C #, .NET Framework, VS 2019.
В Form1 добавьте кнопку. В событии клика есть:
private void Button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Hello");
}
Сохраните ваши изменения, соберите проект.
Теперь добавьте Form2
в проект. Выберите «Просмотреть код» и отредактируйте строку объявления:
public partial class Form2 : Form1
Измените Program.cs
, чтобы сделать Form2
формой запуска:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
}
Запустите программу. Вы увидите, что он Form2
работает, но у него есть кнопка Form1
, и когда вы нажмете кнопку, вы получите сообщение Hello
.