tutorials.de Buch-Aktion 02/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
5722
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    blotte blotte ist offline Mitglied Bronze
    Registriert seit
    Mar 2006
    Beiträge
    39
    Also...
    Ich habe mit VC++ 2005 einige windowsForms fenster erstellt.

    Wenn ich ein "neues" fenster öffne möchte ich, dass das "alte" fenster geschlossen wird.
    Wird das fenster über einen button seperat geschlossen, gibt es mit ...
    Code :
    1
    
    this->Close();
    ...kein problem.

    Wenn ich allerdings ein neues Fenster über bspw. einen button öffne und dabei das alte fenster schließen möchte ... wird nur das neue fenster geöffnet ABER das alte nicht geschlossen.
    Code :
    1
    2
    
    this->Close();
    newAnleitung.ShowDialog(this);

    Woran kann das liegen und wie kann ich das problem beseitigen

    Hat jemand einen rat für mich?

    Gruß Caro
     

  2. #2
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.883
    Blog-Einträge
    34
    Hi,

    Ein Blick in die MSDN hätte dir verraten, dass der Code nach this->CLose() nicht mehr aufgrufen wird.
    Close() gibt die Resoucen der Form frei.
    http://msdn.microsoft.com/library/de...CloseTopic.asp

    Entweder, du öffnest erst die neue Form und schließt dann die Alte oder du schreibst dir eine extra Klasse, die solche Ereignisse extern handled
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  3. #3
    blotte blotte ist offline Mitglied Bronze
    Registriert seit
    Mar 2006
    Beiträge
    39
    Hey...nochmals!

    Wenn Ich erst das neue Fenster aufrufe und dann das alte fenster schließe, klappt es schon besser aber nicht perfekt :-P

    denn unten in der taskleiste wird die "geschlosse" Form immer noch angezeigt, weswegen mir auch erst gar nicht aufgefalln ist, das es überhaupt geschlossen ist.

    Wie beseitige ich das auch noch? vll mit Hide( )?

    ---ODER wie schreibe ich denn eine extra klasse zum schließen des programms? ich habe da irgendwie keine vorstellungen...
    kann mir jemand auf die sprünge helfen

    Gruß Caro

    @ Niggo vielen dank für deine vielen Tips & natürlich auch an alle anderen die sich gedanken machen


    EDIT:
    Mir ist außerdem aufgefallen, dass wenn ich ein Fenster_A über das Fenster_B öffnen möchte gibt es kein problem ABER wenn ich Fenster_A auch noch zusätzlich über Fenster_C öffnen möchte...werden mir einige Fehlermeldung ausgespuckt, obwohl ich bei B & C dasselbe gemacht habe...

    -Weiß jemand wo hier das Problem steckt?
    Code :
    1
    2
    3
    4
    5
    
    #include "frmFenster_A"
    ...
    frmFenster_A      newFenster_A;
    ...
    newFenster_A.ShowDialog(this);
    Geändert von blotte (13.09.06 um 18:27 Uhr)
     

  4. #4
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.883
    Blog-Einträge
    34
    Hi,

    Die Form ist noch in der Taskleiste zu sehen, da sie nicht freigegeben wird. Sie hält noch eine Referenz auf die neue Form. Mit Hide() würdest du sie zwar verstecken (oder auch ShowInTaskbar = false), der Speicher wird jedoch nicht freigegeben.

    Was hast du eigentlich vor? soll das sowas wie ein Wizard werden?
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

  5. #5
    blotte blotte ist offline Mitglied Bronze
    Registriert seit
    Mar 2006
    Beiträge
    39
    Also...wizard kann man das ganze glab ich nennen

    ich habe ein Startfenster von dem komme ich zum Hauptfenster und von dort kann ich zwischen verschiedene aktionen wählen, welche dann wiederum zu einem neuen Fenster führen...
    ich möchte jetzt das man evt auch ZURÜCKSPRINGEN kann ins hauptfenster ...

    wenn ich das dann tue :
    Code :
    1
    2
    3
    4
    5
    6
    
    #include "frmHauptfenster.h"
    ...
    frmHauptfenster ^newHauptfenster;
    ...
    newHauptfenster = gcnew frmHauptfenster();   //leicht verändert
    newHauptfenster->ShowDialog(this);

    kommen fehlermeldungen-->wahrscheinlich WEIL 2 mal dasselbe in verschieden forms steht...

    kann ich evt. auf den HAUPTFENSTER aufruf im STARTFENSTER verweisen?


    Ich hoffe ich habe mich einigermaßen deutlch ausgedrückt

    MfG Caro
     

  6. #6
    Avatar von Nico Graichen
    Nico Graichen Nico Graichen ist offline aka gemballa
    tutorials.de Moderator
    Registriert seit
    Dec 2003
    Ort
    Pulheim (NRW)
    Beiträge
    3.883
    Blog-Einträge
    34
    Hi,

    dann hast du mit dem Ansatz den falschen gewählt. Such mal im Forum nach Wizard, es gibt einen Thread in dem einige Links zu dem Thema stehen.
    Oder mal bei z.B. www.codeproject.com oder ähnlichen Seiten suchen. Da gibt es genug Beispiele zu dem Thema. diese sind zwar meist in C#, was jedoch kein Problem darstellen sollte für einen C++ler.

    Es wäre besser, wenn du die einzelnen Seiten als UserControl machst und diese der Reihe nach aufrufst, das erspart dir viel Aufwand (und ist auch eleganter)
     
    Grüße Nico
    ----------------------
    Xing
    ----------------------
    Zitat Zitat von Mark Twain (1835-1910)
    Es gibt drei Dinge, die eine Frau aus dem Nichts hervorzaubern kann: einen Hut, einen Salat und einen Ehekrach.
    Zitat Zitat von Mike Wilson - Biographie über Larry Ellison (CEO Oracle)
    The Difference Between God and Larry Ellison: God Doesn't Think He's Larry Ellison

Ähnliche Themen

  1. Link in altem Fenster öffnen + Fenster schließen
    Von PhoenixDH im Forum Javascript & Ajax
    Antworten: 17
    Letzter Beitrag: 08.09.04, 22:10
  2. Fenster öffnen, Inhalt drucken, Fenster schließen
    Von dermac'z im Forum Javascript & Ajax
    Antworten: 8
    Letzter Beitrag: 02.07.04, 15:44
  3. Fenster schließen
    Von myplex im Forum Visual Basic 6.0
    Antworten: 2
    Letzter Beitrag: 17.04.04, 14:10
  4. [JS] Wie kann ich Fenster schließen?
    Von Andreas Gaisbauer im Forum Webmaster FAQ
    Antworten: 0
    Letzter Beitrag: 05.08.03, 15:32
  5. Wie kann ich in Flash ein Fenster schließen?
    Von killkrog im Forum Flash Plattform
    Antworten: 12
    Letzter Beitrag: 27.04.02, 21:41