2016-08-02 2 views
0

Mein Lehrer gab mir und meinen Klassenkameraden drei Aktivitäten und von diesen Aktivitäten ist es, ein einfaches Anmeldeformular mit einem Anmeldeformular ohne Datenbank zu machen (na klar, dass wir diese Aktivität machen müssen) bevor mit Datenbank fortfahren) .....Login-Formular und Registrierungsformular ohne Datenbank

Hier ist der Codes: Form1:

public partial class Form1 : Form 
    { 
     string Username; 
     string Password; 
     string NAME; 
     string Age; 

     Form2 Frm = new Form2(); 
//Here is where you get the value of the String from Form2 
     public void PassValue(string strValue) 
     { 
      Username = strValue; 
     } 
     public void PassAnotherValue(string strValue2) 
     { 
      Password = strValue2; 
     } 
     public void PassAnotherValueAgain(string strValue3) 
     { 
      NAME = strValue3; 
     } 
     public void PassAnotherValueAgainAndAgain(string strvalue4) 
     { 
      Age = strvalue4; 
     } 
//------------------------------------------------------------------ 
     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void LoginBtn_Click(object sender, EventArgs e) 
     { 
      if (string.IsNullOrWhiteSpace(LoginUserNameTB.Text))  
      {  
       MessageBox.Show("Please input proper Username...!"); 
      } 
      if (string.IsNullOrWhiteSpace(LoginPasswordTB.Text))  
      {  
       MessageBox.Show("Please input proper Password...!"); 
      }  
      else if ((LoginUserNameTB.Text != Username) && (LoginPasswordTB.Text != Password)) 
      { 
       MessageBox.Show("Welcome" + NAME + "!");  
      } 
      else if ((LoginUserNameTB.Text == Username) && (LoginPasswordTB.Text == Password)) 
      { 
       MessageBox.Show("Please input proper Username and/or Password...!"); 
      } 
     } 

     private void RegisterBtn1_Click(object sender, EventArgs e) 
     { 
      Frm.Show(); 
     } 
    } 
} 

Form2:

//Form2 has four textboxes, four labels, and a button 
      private void RegisterBtn2_Click(object sender, EventArgs e) 
      { 
       Form1 obj1 = new Form1(); 
       Form1 obj2 = new Form1(); 
       Form1 obj3 = new Form1(); 
       Form1 obj4 = new Form1(); 
       Form1 obj5 = new Form1(); 

     //This is where you pass the String value back to Form1 
        obj1.PassValue(RegUserNameTB.Text); 
        obj2.PassAnotherValue(RegPasswordTB.Text); 
        obj3.PassAnotherValueAgain(NTB.Text);  
        obj4.PassAnotherValueAgainAndAgain(ATB.Text); 


       if (string.IsNullOrWhiteSpace(NTB.Text) && string.IsNullOrWhiteSpace(ATB.Text) && string.IsNullOrWhiteSpace(RegUserNameTB.Text) && string.IsNullOrWhiteSpace(RegPasswordTB.Text)) 
        { 
         MessageBox.Show("Please enter the following:" + "\n" + "Name" + "\n" + "Age" + "\n" + "\n" + "UserName" + "\n" + "Password"); 
        } 
       Close(); 
      } 
     } 
    } 

Nun zum Problem dieses Programms ... Das Programm funktioniert einwandfrei und jedes Mal, wenn ich einen Benutzernamen und ein Passwort eingegeben habe, funktionierte es, aber der Wert von 'NAME' fehlt und jedes Mal, wenn ich auf die Schaltfläche Registrieren klickte es wird seine Aktion nur einmal und nie wieder ausführen (wahrscheinlich braucht es eine Ausnahme) .... Und um es zusammenzufassen, unser Instruktor sagte uns, dass der Benutzer ein Limit von 3 haben wird, seinen Benutzernamen und Passwort einzugeben und danach wird das Programm schließen .... Irgendwelche Ideen?

+3

Warum Sie 5 'Form1 erstellen()' Objekte? – FrankerZ

Antwort

2

Ich kann sehen, dass Sie versuchen, einige Informationen zu einem Benutzer jedes Mal zu speichern, wenn Registrierungsformular (Form2) aufgerufen wird.

Diese Eigenschaften:

string Username; 
    string Password; 
    string NAME; 
    string Age; 

sollte in einer Klasse nicht in der Form (Form1 wie in Ihrem Code) gespeichert werden. Ich schlage vor, eine einfache Klasse mit diesen Feldern machen:

class User 
{ 
    // make those fields public for accessibility 
    public string Username; 
    public string Password; 
    public string NAME; 
    public string Age; 

    public User(string Username, string Password, string NAME, string Age) 
    { 
     // assign each fields with arguments from constructor 
     this.Username = Username; 
     this.Password = Password; 
     this.NAME = NAME; 
     this.Age = Age; 
    } 
} 

Ohne eine Datenbank, lassen Sie uns eine Liste erstellen, jede „User“ speichern

class User 
{ 
    // Dont forget to add // using System.Collections.Generic; 
    // on top of the file otherwise List<> would not be available 
    public static List<User> UserList = new List<User>(); 

    // make those fields public for accessibility 
    public string Username; 
    public string Password; 
    public string NAME; 
    public string Age; 

    public User(string Username, string Password, string NAME, string Age) 
    { 
     // assign each fields with arguments from constructor 
     this.Username = Username; 
     this.Password = Password; 
     this.NAME = NAME; 
     this.Age = Age; 
    } 
} 

Um neue Benutzer auf die Userlist hinzufügen, stellen Sie einen neuen Verfahren es in unserem Benutzerklasse zu handhaben

class User 
{ 
    // Dont forget to add // using System.Collections.Generic; 
    // on top of the file otherwise List<> would not be available 
    public static List<User> UserList = new List<User>(); 

    // make those fields public for accessibility 
    public string Username; 
    public string Password; 
    public string NAME; 
    public string Age; 

    public User(string Username, string Password, string NAME, string Age) 
    { 
     // assign each fields with arguments from constructor 
     this.Username = Username; 
     this.Password = Password; 
     this.NAME = NAME; 
     this.Age = Age; 
    } 

    public static void AddUserToList(User user) 
    { 
     UserList.Add(user); 
    } 
} 

Jedes Mal, wenn ein Benutzer registrieren möchten, können Sie auf die Schaltfläche klicken Ereignis wie dieses handhaben:

private void RegisterBtn2_Click(object sender, EventArgs e) 
    { 

     // check for valid input first 
     if (string.IsNullOrWhiteSpace(NTB.Text) && string.IsNullOrWhiteSpace(ATB.Text) && string.IsNullOrWhiteSpace(RegUserNameTB.Text) && string.IsNullOrWhiteSpace(RegPasswordTB.Text)) 
     { 
      MessageBox.Show("Please enter the following:" + "\n" + "Name" + "\n" + "Age" + "\n" + "\n" + "UserName" + "\n" + "Password"); 
     } 
     else 
     { 
      User user = new User(RegUserNameTB.Text, RegPasswordTB.Text, NTB.Text, ATB.Text); 
      User.AddUserToList(user); 
     } 
     Close(); 
    } 

Jetzt können Sie Ihre „Login“ Logik implementieren, indem durch die Userlist iterieren, ob Benutzereingaben in der Liste alle Benutzer entsprechen