C# Neue Form öffnen ._. (!) ._.

... komplette Frage anzeigen

1 Antwort

Hallo zDubi0s,

dein Problem lässt sich ganz einfach lösen, wenn man sich etwas mit der Semantik von C# auseinander setzt!

Als ersten Punkt möchte ich dich darauf hinweisen, dass man eine Instanz nie wie die Objektklasse nennen sollte. Das verursacht momentan deine Fehler! Benenne daher das Objekt um, es reicht sogar schon, wenn du den Namen des Objektes klein schreibst, bspw. Form2 form2 = new Form2(); Form2.Show();
Der nächste Fehler, den du haben wirst, liegt in vermutlich an fehlendem Verständnis von if-Anweisungen.

Was eine if-Anweisung bezweckt, dürfte dir klar sein: Überprüfe folgende Bedingung und führe die nächste Anweisung durch. Warum habe "nächste" markiert? Weil dort dein Fehler liegt.
Der Aufruf form2.Show(); wird immer aufgerufen, da er sich außerhalb der if-Anweisungen befindet, was auch einen Fehler verursacht.
Ich bin mal so frei und kopiere deinen Code, wie er richtig eingerückt aussieht:

private void button1_Click(object sender, EventArgs e)
{
string Eingabe = textBox1.Text;
string Vergleichswert = "CRF2HL5prJ";
string Password = textBox2.Text;
string PasswordKey = "7DFJklm";

if (Eingabe == Vergleichswert)
if (Password == PasswordKey)
Form2 Form2 = new Form2();

Form2.Show();
}

Wäre also die Eingabe und/oder das Passwort falsch, ruft deine Funktion nur form2.Show(); auf; ein Objekt mit dem Namen form2 existiert aber nur innerhalb der if-Anweisungen.

Um dein Problem zu lösen, hilft es, Klammern zu nutzen. Ein einfaches Beispiel zur Veranschaulichung:


if (Bedingung)
{
Form2 f = new Form2();
f.Show(); // Funktioniert
}

if (Bedingung)
Form2 f = new Form2();
f.Show(); // Funktioniert nicht!

Ich hoffe, ich konnte dir bei deinem Problem helfen. Solltest du Fragen haben, kannst du dich gerne bei mir melden!

Mit freundlichen Grüßen

Antwort bewerten Vielen Dank für Deine Bewertung

Was möchtest Du wissen?