Как открыть вторую форму? - PullRequest
26 голосов
/ 19 апреля 2011

У меня есть Form1 и Form2 в моем проекте. Form2 - это просто форма с настройками для Form1. Что такое команда, чтобы открыть форму Form2 из формы Form1, а также какая команда закрыть ее, пожалуйста?

Ответы [ 10 ]

49 голосов
/ 19 апреля 2011

Вам необходимо обработать событие в форме Form1, которое возникает в результате взаимодействия с пользователем.Например, если у вас есть кнопка «Настройки», которую пользователь нажимает для отображения формы настроек (Form2), вы должны обработать событие Click для этой кнопки:

private void settingsButton_Click(Object sender, EventArgs e)
{
    // Create a new instance of the Form2 class
    Form2 settingsForm = new Form2();

    // Show the settings form
    settingsForm.Show();
}

В дополнение кShow метод , вы также можете выбрать ShowDialog метод .Разница в том, что последний показывает форму в виде модального диалога , что означает, что пользователь не может взаимодействовать с другими формами в вашем приложении, пока они не закроют модальную форму.Это то же самое, что и окно сообщения.Метод ShowDialog также возвращает значение, указывающее, как форма была закрыта.


Когда пользователь закрывает форму настроек (например, нажав «X» в строке заголовка), Windows автоматически позаботится о ее закрытии.

Если вы хотитечтобы закрыть его перед тем, как пользователь попросит закрыть его, вы можете вызвать метод Close формы :

this.Close();
8 голосов
/ 19 апреля 2011
//To open the form

Form2 form2 = new Form2();

form2.Show();
// And to close
form2.Close();

Надеюсь, это поможет

6 голосов
/ 19 апреля 2011

Если вы хотите открыть Form2 модально (то есть вы не можете нажать на форму Form1, когда открыта форма 2), вы можете сделать это:(имеется в виду, что вы все еще можете нажать на Form1, когда Form2 открыта), вы можете создать ссылку на Form2 на уровне формы следующим образом:

4 голосов
/ 19 апреля 2011

Я предполагаю, что вы говорите о формах окон:

Для отображения формы используйте метод Show ():

Form form2 = new Form();
form2.Show();

, чтобы закрыть форму, используйте Close ():

form2.Close();
3 голосов
/ 30 июля 2015

В одной строке это будет:

(new Form2()).Show();

Надеюсь, это поможет.

2 голосов
/ 19 апреля 2011

Соответственно Form.Show () (или Form.ShowDialog () если вы хотите, чтобы вторая форма была модальной), и Form.Hide () (или Form.Close () , в зависимости от того, что вы подразумеваете под close it).

2 голосов
/ 19 апреля 2011

Для любого события клика (или другого события):

Form2 frm2 = new Form2();
frm2.Show();
1 голос
/ 19 апреля 2011

Если вам нужно показать Form2 в виде модального диалога , из Form1 сделайте:

var form2 = new Form2();
if (form2.ShowDialog() == DialogResult.OK) 
{
    // process results here
}

Модальное диалоговое окно сохранит фокус, пока оно открыто; он будет устанавливать родительские окна (Form1) "в фоновом режиме", пока не закроется, что является довольно распространенной практикой для окон настроек.

0 голосов
/ 16 мая 2019
Form1 OpenNewForm = new Form1();
OpenNewForm.Show();

«OpenNewForm» - это имя формы.Во втором открывается форма.

Если вы хотите закрыть предыдущую форму:

this.Close();
0 голосов
/ 19 апреля 2011

Начните с этого:

var dlg = new Form2();
dlg.ShowDialog();
...