C# Windows Forms schließen?

... komplette Frage anzeigen

1 Antwort

Hallo MichiFrech,

direkt vorweg: Ich gehe davon aus, dass du Visual Studio nutzt!

eine Möglichkeit, dein Problem zu lösen, wäre folgende:
Du hast zwei Forms: MainForm und Login. Im Konstruktor der MainForm fügst du vor der Methode InitializeComponent den Aufruf der Login-Form als Dialogfenster ein. Der Konstruktor der MainForm sollte in etwa so aussehen:

public MainForm()
{
bool correctLoginData = false;

// Solange keine korrekten Daten eingegeben wurden
while (!correctLoginData)
{
Login loginForm = new LoginForm();

// Ich arbeite hier mit dem DialogResult
// Hat der User Login oder Abbrechen angeklickt?
// Muss in der Login-Form auch eingestellt werden
DialogResult dr = loginForm.ShowDialog();

if (dr == DialogResult.OK) // Wenn OK gedrückt
{
// Hole Daten aus der LoginForm zum Überprüfen
string name = LoginForm.MethodeZumErhaltenDesEingegebenenNamens();
string pw = LoginForm.MethodeFuerPasswort();

// Kontrolliere die Eingaben
correctLoginData = PruefeEingabe(name, pw);
}
else // Wenn z.B. Abort gedrückt wurde
{
Application.Exit();
}
}

InitializeComponent();
}

In diesem zeigst du dem User solange das Loginfenster an, bis er auf Abbrechen geht oder die korrekten Daten eingibt. Danach wird die MainForm ganz normal weiter geladen.

Ansonsten brauchst du noch die Methode PruefeEingabe, die zwei strings als Parameter und bool als Rückgabetyp besitzt. Wie du die Eingaben prüfst, überlasse ich dir.

Ich kann dir nicht versprechen, dass der Code funktioniert! Sollte es zu Fehlern kommen oder du Fragen haben, kannst du dich gerne melden (PN oder als Kommentar).

Mit freundlichen Grüßen

Antwort bewerten Vielen Dank für Deine Bewertung