Guten Morgen,
in meiner Applikation starte ich ein UserControl, welches in einem Fenster hereingeladen wird. Innerhalb dieses UserControls kann man mehrere Fenster öffnen. Beim Schließen dieser
Fenster wird das Fenster mit dem UserControl mitgeschlossen, obwohl nur das eine Fenster geschlossen werden soll.
Die Fenster werden ganz einfach über this.Close() geschlossen.
Vielen Dank
Was meinst du mit:
in meiner Applikation starte ich ein UserControl
?(
Ein bissel (relevanter) Code wäre nicht schlecht.
Window mit dem UserControl: In dem Fenster WindowRechnungenAnzeigen wird nur ein UserControl in einer Groupbox angezeigt. Innerhalb von diesem UserControl gibt es mehrere Elemente, wo man
unter anderem ein weiteres Fenster öffnen kann.
Code aus WindowRechnungenAnzeigen:
public void LadeUserControlRechnungen(List<Rechnung> rechnungen,Abrechnung abrechnung)
{
UserControlRechnungen userControl = new UserControlRechnungen(rechnungen, abrechnung, bfs);
gBoxUserControl.Content = userControl;
}
Code im UserControl zum Öffnen des Fensters WindowStatusAendern
private void Status_Click(object sender, RoutedEventArgs e)
{
WindowStatusAendern windowStatus = new WindowStatusAendern(tbBearbeitungsstatus.Text);
windowStatus.ShowDialog();
}
Nun öffnet sich das Fenster WindowStatusAendern. Dort gibt es einen Button Abbrechen. Drückt man diesen, schließt sich korrekterweise das WindowStatusAendern, aber auch das UserControlRechnungen innerhalb des Fenster WindowRechnungenAnzeigen.
Hier die Methode zum Schließen von WindowStatusAendern:
void AbbrechenClick(object sender, RoutedEventArgs e)
{
this.Close();
}
Schließt sich das ganze Hauptfenster oder ist "nur" das UserControlRechnungen weg?
Kann das Problem nicht nachvollziehen.
Wie wird dein Hauptfenster geöffnet/gestartet?
Ohne weiteren Code habe ich leider keine Idee. Ich kann den Fehler nicht reproduzieren...
Ist glaube ich einfach zu viel Code für das Forum ^^
Danke trotzdem für deine Hilfe
Hallo,
ich glaube das grundsätzliche Problem ist woanders begraben. Überprüfe mal, was in Deinem Code passiert nachdem Du das Dialogfenster geschlossen hast... Irgendwas muss ja da das Schließen des Hauptfensters verursachen.
Vielleicht stürzt Dein Programm auch einfach ab, hast Du irgendwo z.B. try-catch-Blöcke wo eine Exception verschluckt wird oder sowas?
Bei der Fehleranalyse kann Dir wahrscheinlich auch [Tutorial] Vertrackte Fehler durch Vergleich von echtem Projekt mit minimalem Testprojekt finden helfen.
Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Also, so wie ich das sehe, sprechen wir über Usercontrols, die im Hauptfenster geöffnet werden. Also keine eigenen Fenster.
Wenn dies der Fall ist, dann dürfte der Close()-Befehl hier falsch sein, denn der schließt ja die Form.
Also entweder statt der Usersteuerelemente Fenster (Forms) erstellen, und die dann wieder mit Close() schließen, oder wenn Dir das nicht möglich ist, die Usersteurelemente direkt auf die Form ziehen (und nicht jedesmal neu erzeugen) und dann nur immer sichtbar und unsichtbar machen.
@san-software:
Nein, wir sprechen hier schon über Fenster. In einem UserControl kann man auch gar nicht den Close()-Befehl verwenden.
Er spricht aber vom Close()-Befehl.
Und so wie er es beschreibt, möchte er wohl Usercontrols damit schließen.
Er spricht aber vom Close()-Befehl.
Und so wie er es beschreibt, möchte er wohl Usercontrols damit schließen.
Ja, spricht er. Aber in UserControls gibt es keinen Close()-Befehl, den gibt es nur im Window, und die verwendet er auch. Siehe sein Code etwas weiter oben.
Und so wie ich das verstanden habe, möchte er eben nur das Usersteuerelement "schliessen".
Aber ich denke, die Diskussion darüber ist wohl illusorisch 😃