Announcement

Collapse
No announcement yet.

Problem mit Winforms

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Problem mit Winforms

    Hallo,

    habe ein wahrscheinlich einfaches Problem mit Fenstern.

    Mein Programm hat ein Hauptfenster, welches beim Start geladen wird.
    Nun möchte ich ein zweites Fenster ("Loginfenster") automatisch starten wenn
    das Hauptfenster fertig geladen und angezeigt wird. Mein Problem ist, ich finde kein geeignetes Ereignis des Hauptfensters, um das zweite Fenster automatisch zu starten. Beim Aufruf im "Load-Ereignis" seh ich das Hauptfenster nicht. Beim Aufruf im "Activate-Ereignis", würde das Fenster immer mal wieder gestartet und ich müsste eine Prüfung schreiben ob die Anmeldung schon erfolgt ist. Kann ich das irgendwie anders lösen, also wie starte ich ein zweites Fenster automatisch, einmalig aus dem ersten Fenster?

    Danke fürs Bemühen

  • #2
    Hallo,

    wie zeigst du das Anmeldefenster an? Per ShowDialog?


    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment


    • #3
      Habe alle zwei Varianten ausprobiert.

      Code:
      private void Form1_Load(object sender, EventArgs e)
              {
                  Login frmLogin = new Login();
                  frmLogin.ShowDialog(this);
      
              }
      Bei dieser Variante kommt nur das Login-Fenster.

      Code:
      private void Form1_Load(object sender, EventArgs e)
              {
                  Login frmLogin = new Login();
                  frmLogin.Show();
      
              }
      und hier wird das Hauptfenster über dem Login-Fenster angezeigt und der User kann im Hauptfenster "Knöpfe" drücken (z.B. das rote X). Dies möchte ich aber unterbinden. Deshalb würde mir die ShowDialog Version besser gefallen, nur ich habe wie gesagt noch nicht das richtige Ereignis oder stelle im Code gefunden um das Login-Fenster automatisch aufzurufen.

      Comment


      • #4
        Hallo

        Ich würde Form1_Shown verwenden.
        cu

        Comment


        • #5
          Danke,

          gute Idee aber das Ereignis wird bei mir nicht ausgelöst.

          So starte ich mein Hauptfenster:

          Code:
          static void Main()
                  {
          
                      Application.EnableVisualStyles();
                      Application.SetCompatibleTextRenderingDefault(false);
                      Application.Run(new Form1()); 
           
                  }
          in Form1.cs habe ich dann dieses Ereignis (Methode) reingeschrieben:

          Code:
          private void Form1_Shown(object sender, EventArgs e)
                  {
          
                      Login frmLogin = new Login();
                      frmLogin.ShowDialog(this);
          
                  }
          aber dieses Ereignis wird nicht ausgelöst, was ist falsch?

          Comment


          • #6
            Hallo

            Dann fehlt dir wohl noch
            Code:
             this.Shown +=new EventHandler(Form1_Shown);
            im Form_load.
            cu

            Comment


            • #7
              Super, danke jetzt funktioniert es.

              Comment

              Working...
              X