@noob222

Как это сделать в c# Windows forms?

Доброго времени суток. Есть форма типо главной в ней кнопки и по клику кнопки у меня вызывается другая форма в panel
Примерно вот так у меня добаляется форма
private void openFormBody(object formhi)
        {
            if (this.panel2.Controls.Count > 0)
                this.panel2.Controls.RemoveAt(0);
            Form f = formhi as Form;
            f.TopLevel = false;
            f.Dock = DockStyle.Fill;
            this.panel2.Controls.Add(f);
            this.panel2.Tag = f;
            f.Show();
        }

это все нормально работает, но когда я решил добавить кнопку выхода из учетной записи в той форме которую я добавляю в panel и, если я нажму на эту кнопку у меня откроется другая форма (авторизации), а та форма просто останется но закроется форма с кнопкой выход. Возможно сложно и непонятно объяснил, но извиняюсь.
  • Вопрос задан
  • 195 просмотров
Решения вопроса 1
@noob222 Автор вопроса
Разобрался сам! Нужно передать в форму другую форму и потом просто форму которую передал уже приписать это .Hide();
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@DeOxygen
Вариант 1: Использовать глобальную переменную формы
Вариант 2: В кнопке закрытия использовать примерно такой код
foreach (Control item in panel1.Controls)
    {
        item.Close()
        panel1.Controls.Remove(item); 
    }
Ответ написан
@Rasse
if (this.panel2.Controls.Count > 0)
                this.panel2.Controls.RemoveAt(0);
            Form f = formhi as Form;
            f.TopLevel = false;
            f.Dock = DockStyle.Fill;
            this.panel2.Controls.Add(f);
            this.panel2.Tag = f;
            f.Show();
        f.Closed += (s, args) => this.Close();


Обрати в общем внимание на последнюю строчку)
Убей основную форму по закрытию дополнительной
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы