Управление несколькими формами в C # - PullRequest
0 голосов
/ 07 сентября 2018

Это мой первый вопрос, поэтому я надеюсь, что все делаю правильно.В настоящее время я использую Visual Studio Express 2017 для создания приложения на C # для Windows Forms.

Я искал в Stack Overflow и YouTube похожие примеры, но не смог найти ни одного.На прилагаемом изображении у меня есть 3 формы в проекте.Форма Form1, которая является основной управляющей формой, имеет 2 кнопки.Кнопка Form2 для Form2 и кнопка Form3 для Form3.Когда я нажимаю кнопку From2, я могу продолжать нажимать и открывать несколько Form2, а также открывать несколько Form3 без ограничений.Я хотел бы запустить программу, которая, если я нажимаю на кнопку Form2, она может загрузить только один экземпляр Form2 и то же самое с Form3button.

Однако, если я нажимаю кнопку Form3 и открывается форма Form2, я хочу, чтобы Form2 закрывалась, и открывалась только Form3, а также открывалась Form3, и я нажимал кнопку Form2, Form3 закрывался и Form2 открывался.Все время Form1 активен на экране.

Обзор программы форм

namespace MultiWindows

{открытый частичный класс Form1: Form {public Form1 () {InitializeComponent ();}

    private void Form2button_Click(object sender, EventArgs e)
    {
        Form2 f2 = new Form2();
        f2.Show();
    }

    private void Form3Button_Click(object sender, EventArgs e)
    {
        Form3 f3 = new Form3();
        f3.Show();
    }
}

}

1 Ответ

0 голосов
/ 08 сентября 2018

Мне удалось заставить это работать до сих пор с помощью других людей. Я не беру кредит за их помощь.

Поэтому, когда я запускаю программу и нажимаю кнопку Form2, она открывает Form2, а также наоборот для Form3. Когда я нажимаю кнопку Form3, она не закрывает форму Form2, а на экране отображается только форма Form3, поэтому обе формы активны на экране.

Если я закрою форму, щелкнув в правом верхнем углу, я не смогу открыть закрытую форму, пока не перезапущу программу.

пространство имен MultiWindows {

public partial class Form1 : Form

{
    public Form1()
    {
        InitializeComponent();
    }
    private Form2 f2 = null;
    private Form3 f3 = null;

    private void Form2button_Click(object sender, EventArgs e)
    {
        if (this.f2 == null)
        {
            f2 = new Form2();
            f2.Show();
        }
        else
        {
            f2.BringToFront();
        }
    }

    private void Form3Button_Click(object sender, EventArgs e)
    {
        if (this.f3 == null)
        {
            f3 = new Form3();
            f3.Show();
        }
        else
        {
            f3.BringToFront();
        }
    }
}

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...