Macoy hat folgendes geschrieben: |
Dieses Umschalten realisiere ich mit: C#-Quelltext 1: 2: 3: 4:
| if(toolWin.Visible) toolWin.Hide(); else toolWin.Show(); | |
Wie wär's so?
C#-Quelltext
1:
| toolWindow.Visible = !toolWindow.Visible; |
Zitat: |
Soweit sogut... Wenn der User aber die Idee kommt, das toolWin mit einem Klick aufs Kreuzchen (Fenster schliessen) zuzumachen, |
Schaue dir mal den FormClosing event an.
Da kannst du gezielt dann Cancel setzen, wenn der User dein Child schließen wollte.
C#-Quelltext
1:
| e.Cancel = (e.CloseReason == CloseReason.UserClosing); |
Zitat: |
funktioniert dieser Mechanismus nicht mehr. Ich kann weder das Fenster sichtbar machen, noch bekomme ich eine Nullpointer Exception ... Was passiert mit dem Fenster ? Zu Null wird es jedenfalls nicht - also muss es doch noch irgendwo herumschwirren. |
Wie Klaradings schon sagte, es wurde Dipose ausgeführt, welches bei jedem Control das versteckte Win32-Fenster zerstört. Du hast zu dem Zeitpunkt kein richtiges Control mehr. Nur noch eine sinnlose "Hülle".
Ein Form, das mit Show gezeigt wird, wird durch Close sofort vernichtet. Bei ShowModal bist du wiederum dafür zuständig. [meta]Wenn du nicht erst auf den Finalizer warten willst[/meta]
@Martin, wieder verlaufen?