Tworzenie wielu okien

0

Witam,
mam taki problem jako, że jestem początkującym programistą. Chcę w moim programie tworzyć nowe okienka oprócz nadrzędnego, nie wyznaczając w kodzie programu ich dokładnej ilości, oraz abym miał możliwość odniesienia się do wybranego przeze mnie okna niekoniecznie aktywnego, albo co w moim przypadku mi się jedynie udaje, do ostatnio stworzonego.

Piszę w Visualu więc na razie dodalem nowa forme i tworzylem okna w ten sposob

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

moglem poprzez wziecie uchwytu schowac konkretne okno:

uchwyt = form2.Handle;
Control.FromHandle(uchwyt).Hide();

jednak taka zmiana tekstu na kontrolce textBox1 w nowej formie juz byla niemozliwa:

form2.zmientext(this.textBox1.Text);

Proszę o jakieś rady, pamiętajcie że nie znam się za dużo na programowaniu, szczególnie WinApi.

1

musisz gdzieś trzymać listę WSZYSTKICH stworzonych okien. Możesz do tego użyć np. listy - List<Form2> listaForm = new List<Form2>; i przy tworzeniu okna listaForm.Add(new Form2()); . Do konkretnego okna odwołujesz się wtedy tak lista[1].Hide; Dodatkowo musisz zadbać o usunięcie okna z list w momencie jego zamknięcia bo inaczej dostaniesz błąd jeśli spróbujesz odwołać się do zamkniętego okna.
BTW co to jest "zmientext"?

0

Dzieki, myslalem o tym ale nie wiedzialem jak utworzyc odpowiednia tablice.

A zapomnialem, "zmientext" to metoda w Form2.

1

zamiast form2.zmientext(this.textBox1.Text); daj form2.zmientext(form2.textBox1.Text); lub przy użyciu listy, o której wspominałem wcześniej listaForm[1].zmientext(listaForm[1].textBox1.Text);

0

Ok dzieki wielkie dziala.

Ps: Gdyby ktos na rownie slabym poziome programowania czytal tego posta, to tylko napomknę ze zabrakło okrągłych nawiasów na końcu;

List<Form2> listaokien = new List<Form2>();

a moja metoda w drugiej formie wyglada tak:

public void zmientext(string text)
        {
            textBox1.Text=text;
        }

i wersja

listaokien[0].zmientext("text");

dziala:)

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