none
Form aus einer anderen Form öffnen .... wie? RRS feed

  • Frage

  • Hallo ich habe meinem Projekt eine Form hinzugefügt, welche auch in dem Projektbau zu sehen ist. habe dort nun schon grafisch und programmmäßig alles vorbereitet, aber weis jetzt nicht wie ich die Form öffnen kann.

    Also ich will es ja nicht mit new Form2 machen, denn dann öffne ich ja ne leere Form. In VB gin das doch immer mit Form2.show();    wie geht es denn in C#?  Danke

    Samstag, 4. September 2010 10:24

Antworten

  • Hallo B.,

    man braucht eine Instanz der Form und ruft dann normal etwas wie:

         new Form2().Show() // ShowDialog(...)

    auf. 

    Man kann die offenen bereits erzeugten Instanzen auch über Application.OpenForms[0] o.ä. bekommen.


    ciao Frank
    Samstag, 4. September 2010 10:41
  • Hallo B.,

           > und wie geht das mit application.openForms ?

    Hier ein Beispiel:

     public partial class Form1 : Form
     {
     public Form1()
     {
      InitializeComponent();
      this.Shown += Form_Shown;
      Button btn = new Button { Text = "Test" };
      btn.Click += BtnTest_Click;
      Controls.Add(btn);
     }
    
     void BtnTest_Click(object sender, EventArgs e)
     {
      Form2 f2 = new Form2 { Name = "Form2" };
      f2.Shown += Form_Shown;
      f2.Show();
     }
    
     void Form_Shown(object sender, EventArgs e)
     {
      AnzeigeDerOffenenFormen();
     }
    
     private void AnzeigeDerOffenenFormen()
     {
      StringBuilder sb = new StringBuilder();
      foreach (Form form in Application.OpenForms)
      sb.AppendLine(form.Name);
      MessageBox.Show("Offene Formen:\r\n" + sb.ToString());
     }
     }
    

    ciao Frank
    Samstag, 4. September 2010 13:39

Alle Antworten

  • Hallo B.,

    man braucht eine Instanz der Form und ruft dann normal etwas wie:

         new Form2().Show() // ShowDialog(...)

    auf. 

    Man kann die offenen bereits erzeugten Instanzen auch über Application.OpenForms[0] o.ä. bekommen.


    ciao Frank
    Samstag, 4. September 2010 10:41
  • und wie geht das mit application.openForms ? da bekomme ich dann doch garnichts angezeigt. also keien for, ie ich aufrufen will
    Samstag, 4. September 2010 11:36
  • Hallo B.,

           > und wie geht das mit application.openForms ?

    Hier ein Beispiel:

     public partial class Form1 : Form
     {
     public Form1()
     {
      InitializeComponent();
      this.Shown += Form_Shown;
      Button btn = new Button { Text = "Test" };
      btn.Click += BtnTest_Click;
      Controls.Add(btn);
     }
    
     void BtnTest_Click(object sender, EventArgs e)
     {
      Form2 f2 = new Form2 { Name = "Form2" };
      f2.Shown += Form_Shown;
      f2.Show();
     }
    
     void Form_Shown(object sender, EventArgs e)
     {
      AnzeigeDerOffenenFormen();
     }
    
     private void AnzeigeDerOffenenFormen()
     {
      StringBuilder sb = new StringBuilder();
      foreach (Form form in Application.OpenForms)
      sb.AppendLine(form.Name);
      MessageBox.Show("Offene Formen:\r\n" + sb.ToString());
     }
     }
    

    ciao Frank
    Samstag, 4. September 2010 13:39