Как вызывать по одной форме внутри Panel?

213
30 марта 2017, 17:57

Проблема в том, что вызывая Form2 она открывается несколько раз до бесконечности. Может есть способ открывать только один раз, и при переходе на другую форму закрывать предыдущую?

Уточню, если несколько раз нажать на PictureBox1 или PictureBox2, формы будут созданы столько раз, сколько раз было нажато.

    private Form f1;
    private void pictureBox1_Click(object sender, EventArgs e)
    {
        f1 = new Form2();
        f1.TopLevel = false;
        this.panel1.Controls.Add(f1);
        f1.Dock = DockStyle.Fill;
        f1.Show();
    }
    private Form f2;
    private void pictureBox2_Click(object sender, EventArgs e)
    {
        f2 = new Form3();
        f2.TopLevel = false;
        this.panel1.Controls.Add(f2);
        f2.Dock = DockStyle.Fill;
        f2.Show();
    }
Answer 1
private void pictureBox1_Click(object sender, EventArgs e)
{
  this.panel1.Controls.Clear();
  if (f1 == null)
  {
    f1 = new Form2();
    f1.TopLevel = false;
    f1.Dock = DockStyle.Fill;
  }
  this.panel1.Controls.Add(f1);
  f1.Show();
}
READ ALSO
Вопрос про компоновку представлений asp.net mvc

Вопрос про компоновку представлений asp.net mvc

Подход database first, есть две модели и у каждой модели по одному представлению

241
optgroup для dropdowlist

optgroup для dropdowlist

Есть такой кусок кода

148
Ошибка при создании пользователей

Ошибка при создании пользователей

ЗдравствуйтеНеобходимо создать роли и пользователей с помощью Конфигурации ASP

196
Где объявляют переменную?

Где объявляют переменную?

Создаю игру на движке Unity3d и дошел до страшного

184