[VC++ 2005] Wie kann ich einzelne Fenster schließen?

blotte

Mitglied
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:
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:
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
 
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 :rolleyes:

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:
#include "frmFenster_A"
...
frmFenster_A      newFenster_A;
...
newFenster_A.ShowDialog(this);
 
Zuletzt bearbeitet:
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?
 
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:
#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
 
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. http://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)
 

Neue Beiträge

Zurück