Методы перехода в другую форму в C#

Чтобы перейти к другой форме в C#, вы можете использовать различные методы. Вот несколько подходов, которые вы можете рассмотреть:

  1. Использование метода Show(). Если в вашем приложении имеется несколько форм, вы можете использовать метод Show()для отображения другой формы. Этот метод выведет желаемую форму на передний план, оставив предыдущую открытой. Вы можете скрыть текущую форму с помощью метода Hide().
Form2 form2 = new Form2();
form2.Show();
this.Hide();
  1. Использование метода ShowDialog(). Метод ShowDialog()аналогичен Show(), но он создает модальное диалоговое окно. Это означает, что пользователь не может взаимодействовать с предыдущей формой, пока новая форма не будет закрыта.
Form2 form2 = new Form2();
form2.ShowDialog();
  1. Использование метода Application.Run(). Если вы хотите переключиться между различными формами и закрыть предыдущую форму, вы можете использовать метод Application.Run(). Этот метод запускает цикл обработки сообщений для указанной формы, фактически закрывая текущую форму и отображая новую.
Form2 form2 = new Form2();
form2.Show();
this.Close();
Application.Run(form2);
  1. Использование событий и делегатов. Вы можете определить собственные события и делегаты для взаимодействия между формами. Например, вы можете создать событие в первой форме и подписаться на него во второй форме. Когда событие инициируется, может отображаться вторая форма.

В форме 1:

public delegate void ChangeFormDelegate();
public event ChangeFormDelegate ChangeFormEvent;
private void ChangeFormButton_Click(object sender, EventArgs e)
{
    ChangeFormEvent?.Invoke();
}

В форме 2:

public Form2()
{
    InitializeComponent();
    Form1 form1 = new Form1();
    form1.ChangeFormEvent += DisplayForm2;
}
private void DisplayForm2()
{
    this.Show();
}