Jak stworzyć nowe okno

0

Witam.
Próbowałem stworzyć aplikację w oparciu o jedno okno jednak wydaje się to dosyć kłopotliwe. Postanowiłem Rozwiązać ten problem poprzez stworzenie kilku okien i odpowiednie ich wyświetlanie. Jednak nie wiem gdzie należy umieścić kod aby można było otworzyć nowe okno po naciśnięciu przycisku. Stworzyłem sobie nową klasę która dziedziczy po System::Form tak jak ma to miejsce w przypadku okna głównego jednak nie wiem co dalej. Potrafię zrobić aby wyświetlane to moje drugie okno zmieniając w pliku main

Application::Run(gcnew Form1()); 

W jaki sposób mogę uruchamiać poszczególne okna skoro nigdzie nie ma żadnej instancji danej klasy? Kod jest w C++ cli.

0

Użyj Google, nie gryzie. :P
http://docent-7.tk/J

a i jeszcze jedno, wstaw pan tagi i nie ten dział :)

0

Na przykład tak:

namespace UruchamianieWieluOkien
{
    static class Program
    {
        [STAThread]
        static void Main()
        {
            new Form1().Show();
            new Form1().Show();
            new Form1().Show();
            new Form1().Show();
            Application.Run(new Form1());
        }
    }
}

Czyli żeby pokazać jakieś okno tworzysz obiekt typu okna i wywołujesz na nim metodę .Show().

(Do C++/Cli to przenieś sam, zgaduję że powinno być (gcnew Form1())->Show(), ale głowy nie dam)

0

Dział to C# i .Net a problem dotyczy .NET. W google szukałem ale nie za bardzo to chciało działać. Teraz już wiem w czym jest problem wystarczyło dodać incude'a na początku i teraz wszystko jest ok. Wyskakiwał błąd " error C2143: syntax error : missing ';' before '^' " więc nie powiązałem tego z brakiem incude'a tym bardziej, że próbowałem tworzyć klasę w tym samym namespace'ie.

0

W jaki sposób mogę uruchamiać poszczególne okna skoro nigdzie nie ma żadnej instancji danej klasy?

Jak to nie ma? Przecież taki kod:

Application::Run(gcnew Form1());

z powodzeniem można przerobić na:

Form1 ^form1 = gcnew Form1();
Application::Run(form1);

albo nawet

Form1 form1;
Application::Run(%form1);
0

No teoretycznie nie ma żadnej instancji (chociaż w sumie w przypadku c++ cli żywotność okna nie zakończy się od razu więc niby jest). Ale masz rację nie zauważyłem, że tutaj wykorzystuje ten sposób. To co napisałeś jest tego odpowiednikiem. Natomiast jeśli chodzi o dodawanie do pliku main nowego okna to otworzy się ono tylko po zamknięciu starego bo to już sprawdzałem.

1
Alkan0id napisał(a):

Natomiast jeśli chodzi o dodawanie do pliku main nowego okna to otworzy się ono tylko po zamknięciu starego bo to już sprawdzałem.
WTF? Bredzisz synu (nie rozumiem cię).

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