C# Form aus anderer Form öffnen

Voltago

Commander
Registriert
Nov. 2010
Beiträge
2.228
Hi,

ich steh wiedermal auf der Leitung... :D

Nachdem ich jetzt nach über einer Stunde googeln immer noch keine Lösung für mein Problem gefunden hab, frage ich jetzt einfach hier nach.

Ich habe in ein bestehendes Projekt eine zweite Form hinzugefügt, weil ich plane, dieses Projekt zu erweitern, so quasi als Startseite. Die zweite Form habe ich bereits als StartUp festgelegt.

Per Klick auf einen Button soll dann die zweite Form erscheinen, hier allerdings scheitere ich.

Hier mal der Code aus der zweiten Form:

Code:
using System;
using System.Windows.Forms;

namespace Rechner
{
    
    public partial class Tools : Form
    {
        Form Form1 = new Form();

        public IkaTools_Home()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            Form1.ShowDialog();
        }
    }
}

Wenn ich dann starte und auf den Button klicke, geht eine neue Form auf, diese ist allerdings komplett leer.

Die Form, die ich aufrufen will, heißt auch Form1 und befindet sich im selben Projekt, namespace ist auch der selbe.
Das "new" hat mich von Anfang an stutzig gemacht, wenn ich das "new" allerdings weglasse, meldet Visual Studio einen Fehler.

"Form1 = Tools.Form1;" liefert genau wie "Form Form1 = Tools.Form1;"ebenfalls einen Fehler.

Kann mir da jemand helfen?

Gruß
 
Code:
Form1 ZweiteForm = new Form1();

und

Code:
private void button1_Click(object sender, EventArgs e)
{
    ZweiteForm.ShowDialog();
}

Besser wäre es aber wahrscheinlich, die zweite Form erst beim Klick auf den Button zu erstellen, also quasi die globale Variable weglassen und das Button-Event so:
Code:
private void button1_Click(object sender, EventArgs e)
{
    var zweiteForm = new Form1();
    zweiteForm.ShowDialog();
}
 
Nabend,

joa wie hasst du denn deine 2. Form genannt?

Code:
Form Form1 = new FORMNAME();

Durch deinen Aufruf mit "new Form()", erstellst du ein komplett neue Form, daher zeigt sie bei dir auch nichts an. ;)

Wobei du natürlich noch den Variablennamen anpassen solltest. Form1 ist nicht besonderst aussagekräftig.

Mfg Spezi
 
Du verwechselst hier Klassen(namen) mit Variablen(namen).

Form1 ist also dein 2. Fenster? Dann leg auch eine Variable vom Typ Form1 an, und nicht vom Supertyp Form.

Dann klappt es auch mit dem öffnen von deiner Form1 ;)

Also:
Form1 form1 = new Form1();
und
form1.ShowDialog();
 
Besten Dank an Grünel, durch die Vorgabe hab ich das jetzt hinbekommen.

Auch Danke an DoNG, der mir meinen Fehler genau erklärt hat.

Gruß

Edit: Und meine Namen werd ich noch anpassen, bisher gabs nur eine Form, da war das nicht so wichtig :p Ging ja derzeit auch mehr ums Ausprobieren, damit ich im richtigen Programm nix kaputt mache.
 
Zurück
Oben