При нажатии кнопки (это находится в основной форме), я показываю (вторую) форму, которая выполняет некоторый анализ (распаковка, извлечение, получение информации и т. Д.) Файла архива. После завершения этого процесса я закрываю вторую (синтаксический анализ) форму и показываю другую (третью) форму, которая содержит разобранную информацию из архива.
Обратный вызов клика выглядит так:
private void ParseInputBackupButton_Click(object sender, EventArgs e)
{
Form PBF = new ParseBackupForm();
Form CBF = new CreateBackupForm();
PBF.FormClosed += delegate
{
CBF.ShowDialog();
};
PBF.ShowDialog();
}
и вторая форма:
private void ParseBackupForm_Load(object sender, EventArgs e)
{
new Thread((ThreadStart)delegate
{
// parse and update form
this.Invoke((MethodInvoker)delegate
{
this.Close();
});
}).Start();
}
Проблема в том, что когда появляется третья форма (CreateBackupForm
), вторая форма (ParseBackupForm
) не закрывается. Они оба появляются. Если я не покажу третью форму, вторая форма закроется.
![screenshot of the forms](https://i.stack.imgur.com/DexE5.jpg)
Что я делаю не так?