C# WinForms Otwieranie nowych okien za pomocą przycisku.

0

Witam. Piszę program który zawiera w sobie razem 3 okna. Okno które wyświetlane jest jako pierwsze (From1) posiada 2 przyciski. Chciałbym by kliknięcie przycisku nr 1 otwierało drugie okno (Form2), a naciśniecie przycisku nr 2 otwierało trzecie okno (Form3) bez otwierania drugiego (Form2). Po naciśnięciu któregokolwiek przycisku w pierwszym oknie ma się ono zamykać. Jaki kod przypisać przyciskom w Form1?

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //otwarcie Form2
            //zamknięcie Form1

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //otwarcie From3
            //zamknięcie From1
        }
    }

I czy powinienem coś zmieniać w Program.cs

static class Program
    {
        /// <summary>
        /// Główny punkt wejścia dla aplikacji.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
        }
    }

Próbowałem już różnych zestawień. Przy użyciu From2.Show(), lub Form2.ShowDialog() okno Form2 od razu się zamykało, a po wpisaniu za " //otwarcie Form2" Application.Run(new Form2()); wyświetlał się wyjątek:
"System.InvalidOperationException: „Rozpoczynanie drugiej pętli komunikatów w pojedynczym wątku nie jest prawidłową operacją. Użyj zamiast tego elementu Form.ShowDialog.”
Z góry dziękuję za pomoc.

2

Nic nie zmieniaj w Program.cs. Po prostu pod buttonem utwórz obiekt odpowiedniego Form i go wyświetl używając metody Show() lub ShowDialog().

0

Najpierw musisz mieć obiekty Form2 i Form3. A potem je wyswietlasz.
czyli Form2 MojForm2=Form2();
MojForm2.ShowDialog()

analogicznie dla Form3

1 użytkowników online, w tym zalogowanych: 0, gości: 1