none
Form öffnet erst bei Programmende RRS feed

  • Frage

  • Hi!
    Ich sage direkt, ich bin noch nicht sooo bewandert, gerade bei Forms und will, dass mir in meinem Programm ein Button ein zweites Form öffnet. Wenn ich auf den Button klicke passiert jedoch gar nichts, nur beim beenden des Programms sehe ich kurz einmal das zweite Form aufblitzen. Der Code der Hauptdatei sieht so aus:

    Quellcodeabschnitt

    #include <windows.h>
    #include <system.h>

    #include "stdafx.h"
    #include "Form1.h"
    #include "Manager.h"

    using namespace AW_Launcher;

    bool manager_click(Object^ sender, EventArgs^ e) {
        return true;
    }

    public delegate void MyDel(System::Object ^,System::EventArgs ^ i);

    [STAThreadAttribute]
    int main(array<System::String ^> ^args)
    {
       
        // Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden
        Application::EnableVisualStyles();
        Application::SetCompatibleTextRenderingDefault(false);

        // Hauptfenster erstellen und ausführen
        Application::Run(gcnew Form1());
        Form1 ^ f1 = gcnew Form1;
        MyDel ^ StaticDelInst = gcnew MyDel(f1, &Form1::managerButton_Click);
        if (gcnew MyDel(f1, &Form1::managerButton_Click)) {
            Form ^ManagerForm= gcnew Manager();
            ManagerForm->Show();
        };
        return 0;
    }

    Natürlich soll die Datei noch mehr können, aber erstmal muss das Form aufgerufen werden und das andere dabei offen bleiben. Außerdem wäre noch ein Beispielcode für das schließen des zweiten Forms bei betätigen eines Buttons gut ohne das erste zu schließen. Danke schon mal an alle!
    Samstag, 13. Oktober 2007 14:00

Antworten

Alle Antworten

  • Hi Cronk,

     

    Was hast Du den genau vor?

    Die Form1 wird gestartet und soll dann die Form2 starten und anzeigen?

    Das würde ich nicht in der main() machen.

    Da wird das Hauptfenster festgelegt.

    Mach das doch über das Load-Ereignis der Form1.

    Wenn Du nicht weißt wie das geht, schicke ich Dir Code.

    Gruß, Doug_HH

     

    Dienstag, 16. Oktober 2007 19:21
  • Code wär fein, vor allem weil ich nix von wegen Load habe
    Mittwoch, 17. Oktober 2007 12:31
  • Hi Cronk,

    Du musst das Load-Ereignis erst hinzufügen.

    Hab Dir mal eben ein Video gemacht, ist vielleicht einfacher für Dich.

    http://www.rb-softarticle.com/Form2.html

    Linksklick = Roter Kreis.

    Rechtsklick = Blauer Kreis.

    Wenn noch Fragen sind, nur zu.

    Gruß, René

     

     

     

    Mittwoch, 17. Oktober 2007 15:05
  • Das wolltest Du doch gar nicht was ich Dir da erzählt habe, wer lesen kann ist klar im Vorteil J

    Du wolltest doch nur einfach einen Button der eine zweite Form anzeigt.

    http://www.rb-softarticle.com/Form3.html

    Es gibt zwei verschiedene Möglichkeiten.

    1. Das Fenster Modal anzeigen lassen, das heißt, man kann auf das Parent Fenster nicht zugreifen bevor das Modale Fenster geschlossen wird.

    ->ShowDialog();

    2. Das Fenster nicht Modal anzeigen lassen, das macht der Befehl ->Show(); Das Fenster bleibt geöffnet und man kann trotzdem auf das Parent Fenster zugreifen, so wie ein Suchdialog.

    Du kannst ruhig das Load Ereignis löschen

     

    Gruß, René

     

    Mittwoch, 17. Oktober 2007 15:29
  • Ah! Genau das wollt ich,danke!
    Donnerstag, 18. Oktober 2007 14:27