Form soll sich im Konstruktor selbst beenden



  • Wie muß ich folgenden Code ändern, damit er richtig ist?

    using System.Windows.Forms;
    
    static class Program
    {
        static void Main()
        {
            Application.Run(new Form1());
        }
    }
    
    public partial class Form1 : Form
    {
        public Form1()
        {
            if (MessageBox.Show("Möchten Sie wirklich starten?", "Frage", MessageBoxButtons.YesNo)==DialogResult.No)
                this.Close();
        }
    }
    

    Wenn ich bei der Message-Box auf Nein klicke, wird in Zeile 7 eine System.ObjectDisposedException ausgelöst. Wie also kann ich die Anzeige des Dialogfelds innerhalb des Dialogfelds verhindern, ohne daß dabei das Objekt zerstört wird (was ja erst nach Application.Run passieren darf).



  • Ich würde an deiner Stelle dem Form das Ereignis "Load" hinzufügen.
    Wenn du das gemacht hast und die Funktion mit deiner MessageBox füllst, funktioniert es einwandfrei. 😉

    private void Form1_Load( object sender, EventArgs e )
        {
          if( MessageBox.Show( "Möchten Sie wirklich starten?", "Frage", MessageBoxButtons.YesNo ) == DialogResult.No )
            this.Close( ); 
        }
    

    Gruß,
    Ellek



  • Vielen Dank.


Anmelden zum Antworten