BillWoodruff
Первое, что нужно понять, это то, что когда вы создаете приложение WinForm и запускаете его, форма, которую оно запускает, находится в основном методе Program.cs ... упоминается как "основная форма"... когда она будет закрыта ... закроет приложение, а все остальные формы приложение уже открыло.
Итак, вы могли бы сделать это:
1. пусть приложение запустит то, что теперь является вашей второй формой в качестве основной формы.
2. скройте главное окно формы и покажите, что теперь является вашей основной формой
3. когда вторичная форма закрыта, покажите основную форму:
using System;
using System.ComponentModel;
using System.Windows.Forms;
namespace TwoFormApp
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
// stop layout
SuspendLayout();
}
// what was your Main Form
private SecondaryForm sForm;
private void Form1_Load(object sender, EventArgs e)
{
sForm = new SecondaryForm();
sForm.Closing += SFormOnClosing;
sForm.Show();
}
private void SFormOnClosing(object sender, CancelEventArgs cancelEventArgs)
{
// show the main foem
this.Show();
}
private void MainForm_Shown(object sender, EventArgs e)
{
// hide the main form
this.Hide();
ResumeLayout();
}
}
}
Приложение WinForm позволит вам скрыть основную форму только тогда, когда событие 'showed будет вызвано во время процесса запуска пользовательского интерфейса.
Примечание: Я сомневаюсь, что вы захотите закрыть вторую показанную форму (теперь вашу основную форму), не получая/сохраняя некоторые данные, введенные/выбранные пользователем в этой форме... вы знаете, как это сделать ?
Member 11727674
Я не хочу, чтобы вторая форма была формой запуска проекта, которую я хочу, нажав на кнопку в form1, form1 close и form2 start.is это возможно?
BillWoodruff
Дело в том, что в стандартном приложении WinForm закрытие основной формы приведет к закрытию приложения и всех открытых форм.
Если вы хотите другого поведения, то вам нужно изменить архитектуру вашего приложения. Существует способ запустить приложение WinForm без "основной формы" (используя пользовательский ApplicationContext) и нескольких форм. Я сомневаюсь, что это то, чего ты хочешь здесь.