Didii Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 hallo, habe einen C# Form-Dialog der wie bei einer MessageBox nur einen Button hat. Der Benutzer soll die Meldung lesen und auf den Button klicken. Die Form hat aber das Schliessen "x" am rechten oberen rand. Wie bekomme ich das weg? und kann man es dann mit "alt+F4" schliessen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Du suchst das Ereignis, das beim Schliessen des Fensters ausgelöst wird und du behandelst es in einer eigenen Funktion. Die macht nichts weiter, als anzugeben, dass das Ereignis als behandelt zu markieren. Sollte das nicht klappen, dann Cancel das Ereignis einfach. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NoOneKnows Geschrieben 9. Juni 2004 Teilen Geschrieben 9. Juni 2004 Gibt auch ne Eigenschaft die nennt sich ControlBox oder so ähnlich. Mit ihr kannst du den Schließen-Button ausblenden. Damit dürfte auch Alt + F4 nicht mehr funktionieren. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 10. Juni 2004 Teilen Geschrieben 10. Juni 2004 Stimmt. Oder eben so. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Counterfeit Geschrieben 10. Juni 2004 Teilen Geschrieben 10. Juni 2004 Da muss ich euch beide aber enttäuschen, damit werden nur die Buttons oben ausgeblendet, man kann die Anwendung aber trotzdem mit Alt + F4 schließen. @Didii: Ich poste später mal ein Beispiel, hab gerade nicht viel Zeit. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Counterfeit Geschrieben 10. Juni 2004 Teilen Geschrieben 10. Juni 2004 Hallo, also wie folgt kannst du das "X" und "Alt + F4" deaktivieren. Wenn du oben rechts überhaupt nix angezeigt bekommen willst, stelle es mit ControlBox aus. Also du musst einfach das WndProc überschreiben. protected override void WndProc(ref Message m) { if(m.Msg != 0x0010) { base.WndProc (ref m); } else { //Windows sendet die WM_CLOSE Nachricht an deine Form //Ignoriere sie und die Anwendung kann nicht geschlossen werden } } Hoffe geholfen zu haben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NoOneKnows Geschrieben 11. Juni 2004 Teilen Geschrieben 11. Juni 2004 Tatsache, das Formular lässt sich noch mit Alt+F4 schließen. In der Hilfe steht allerdings unter Form.ControlBox-Eigenschaft etwas anderes: Eigenschaftenwert true, wenn im Formular in der linken oberen Ecke ein Systemmenüfeld angezeigt wird, andernfalls false. Der Standardwert ist true. Hinweise Wenn die ControlBox-Eigenschaft auf true festgelegt wird, wird das Systemmenüfeld in der linken oberen Ecke der Titelleiste angezeigt. Durch Klicken auf das Systemmenüfeld greift der Benutzer auf das Systemmenü zu. Hinweis Wenn im Formular kein Systemmenüfeld angezeigt wird, kann das Formular nicht mit der Tastenkombination ALT+F4 geschlossen werden. Hinweis Wenn für die ControlBox-Eigenschaft false festgelegt wurde, hat diese keine Auswirkungen auf ein untergeordnetes MDI-Formular (Multiple Document Interface), das zum Erstellungszeitpunkt maximiert angezeigt wird. Aber dieser "Fehler" ist scheinbar bekannt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gerner Geschrieben 11. Juni 2004 Teilen Geschrieben 11. Juni 2004 private void Form_Closing(object sender, System.ComponentModel.CancelEventArgs e) { e.Cancel = true; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
etreu Geschrieben 11. Juni 2004 Teilen Geschrieben 11. Juni 2004 @Gerner: genau was ich meinte :OD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mister A Geschrieben 17. September 2004 Teilen Geschrieben 17. September 2004 Und was tut man, wenn das bei einem nicht funktioniert? Ich habe ein modal angezeigtes Formular (über showDialog) und möchte nicht, daß Form_Closing das Schliessen der Form bewirkt, nachdem ich sie z.B. mit Hide() verborgen habe. Hab schon so einiges ausprobiert, aber es beendet sich dann trootzdem das komplette Programm weil "ShowDialog" dann ein Result meldet, obwohl es das nicht soll. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gerner Geschrieben 19. September 2004 Teilen Geschrieben 19. September 2004 Ich habe ein modal angezeigtes Formular (über showDialog) und möchte nicht, daß Form_Closing das Schliessen der Form bewirkt, nachdem ich sie z.B. mit Hide() verborgen habe. Kannst Du das nochmal bissl genauer erklären, ich verstehe Dein Problem nicht. Das liegt bestimmt daran, dass heute Sonntag ist. :OD Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Mister A Geschrieben 20. September 2004 Teilen Geschrieben 20. September 2004 Man ruft mit ShowDialog aus einer in einer eigenen Klasse befindlichen Main ein Formular auf, damit der Code erst weiter ausgeführt wird, wenn das Formular geschlossen wird, bzw ein dialogResult zurückkommt. Eben dieses Ereignis (Form.close) tritt jetzt aber bereits auf, wenn das Formular in den Zustand der Unsichtbarkeit gesetzt wird. Und warum auch immer: Wenn man dort den EventArgs Member Cancel auf true setzt wird das allerliebst ignoriert. Wenn man sich die Mühe machen möchte kann man auch die "OnClosing" Methode überschreiben und das Closing Ereignis nur ausführen lassen, wenn man es will; jegliche If Bedingung wird dort aber anscheinend de facto in die Wüste geschickt. Da will jemand unbedingt, daß DialogResult == Cancel ist, das spürt man ganz deutlich. Hab mein Programm jetzt umgestellt, sodaß dieses Formular jetzt nihct mehr modal aufgerufen wird, dann funktioniert alles wie mit Meister Propper geputzt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NoOneKnows Geschrieben 21. September 2004 Teilen Geschrieben 21. September 2004 Normalerweise macht man das in der Mainmethode auch mit Application.Run(new MeinFormular()); Damit wird der Code weiter unten auch erst ausgeführt, wenn das Formular geschloßen wird. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.