2016-05-06 2 views
0

Ich habe ein Problem mit meinem Programm. Ich versuche, alle in Textfelder eingegebenen Informationen zu verwenden und sie in einer TXT-Datei zu speichern. Ich habe eine Adressklasse, um die Informationen und ein Formular zu formatieren.Benutzerinfo zu txt Datei, die zu lesen ist

Ich habe die Adresse Klasse hier:

public class Addresses 
{ 
    private string name { get; set; } 
    private string address { get; set; } 
    private string city { get; set; } 
    private string state { get; set; } 
    private string zipCode { get; set; } 
    private string phoneNum { get; set; } 

    public Addresses() 
    { 
    } 

    public Addresses(string fName, string ad, string cty, string st, string zip, string pNum) 
    { 
     name = fName; 
     address = ad; 
     city = cty; 
     state = st; 
     zipCode = zip; 
     phoneNum = pNum; 
    } 
    public override string ToString() 
    { 
     return "Name: " + name + 
      "\nAddress: " + address + 
      "\nCity: " + city + 
      " State: " + state + 
      " Zip Code: " + zipCode + 
      "\nPhone#: " + phoneNum; 
      ; 
    } 

} 

} 

Und Formularklasse hier:

using System; 
    using System.Collections; 
    using System.Collections.Generic; 
    using System.ComponentModel; 
    using System.Data; 
    using System.Drawing; 
    using System.IO; 
    using System.Linq; 
    using System.Text; 
    using System.Threading.Tasks; 
    using System.Windows.Forms; 

    namespace AddressBook 
    { 
    public partial class Form1 : Form 
    { 
     private StreamReader inFile; 
     private StreamWriter outFile; 


     public Form1() 
     { 

      InitializeComponent(); 

     } 




     private void menuExit_Click(object sender, EventArgs e) 
     { 
      Application.Exit(); 
     } 

     private void fileToolStripMenuItem_Click(object sender, EventArgs e) 
     { 

     } 

     private void aboutToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
      MessageBox.Show("Created by ME!\nByron Buyck\nAKA\n毕容谦" + 
       "\n2016"); 
     } 

     private void openToolStripMenuItem_Click(object sender, EventArgs e) 
     { 
      try 
      { 
       openBox.ShowDialog(); 
       inFile = new StreamReader(openBox.FileName); 
       lblMessage.Text = "File Name: " + openBox.FileName; 
       readFile(); 
       inFile.Close(); 


      } 
      catch (Exception ex) 
      { 
       lblMessage.Text = ex.Message; 
      } 
     } 

     private void readFile() 
     { 
      string data = inFile.ReadLine(); 

      while (data != null) 
      { 
       txtInfo.Text += data + "\r\n"; 
       data = inFile.ReadLine(); 


      } 
     } 

     private void btnClr_Click(object sender, EventArgs e) 
     { 
      txtInfo.Text = ""; 
      textBox1.Text = ""; 
      textBox3.Text = ""; 
      textBox5.Text = ""; 
      textBox6.Text = ""; 
      textBox7.Text = ""; 
      textBox8.Text = ""; 


     } 

     private void btnSave_Click(object sender, EventArgs e) 
     { 

      Addresses User = new Addresses(); 
      textBox1.Text = User.name; 
      textBox3.Text = User.address; 
      textBox5.Text = User.city; 
      textBox6.Text = User.state; 
      textBox7.Text = User.zipCode; 
      textBox8.Text = User.phoneNum; 
      User.ToString(); 

      try 
      { 
       saveBox.ShowDialog(); 
       outFile = new StreamWriter(saveBox.FileName, true); 
       outFile.WriteLine(txtInfo.Text); 
       outFile.Close(); 
      } 
      catch (Exception ex) 
      { 
       lblMessage.Text = ex.Message; 

      } 
     } 


     private void textBox1_TextChanged(object sender, EventArgs e) 
     { 




     } 

     private void textBox3_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void textBox4_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void textBox5_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void textBox6_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void textBox7_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void txtInfo_TextChanged(object sender, EventArgs e) 
     { 

     } 

     private void label7_Click(object sender, EventArgs e) 
     { 

     } 
    } 
    } 

Bitte mir jemand sagen, was ich falsch gemacht habe. Die Datei wird gespeichert, aber in der Datei, die gespeichert wird, wird nichts angezeigt.

Antwort

0

Sie haben folgendes in btnSave_Click umgekehrt:

Addresses User = new Addresses(); 
textBox1.Text = User.name; 
textBox3.Text = User.address; 
textBox5.Text = User.city; 
textBox6.Text = User.state; 
textBox7.Text = User.zipCode; 
textBox8.Text = User.phoneNum; 
User.ToString(); 

In dem obigen Fall, dass Sie Ihre Textfelder auf die Werte der Benutzereinstellung würde. Wenn Sie ToString aufrufen, sind die Werte einfach undefiniert, da sie nie im Standardkonstruktor festgelegt wurden.

Stattdessen möchten Sie wahrscheinlich das Gegenteil tun, das die Werte des Benutzers basierend auf den Textfeldern festgelegt wird und dann die Benutzerinformationen abrufen.

Edit: Ihre Addresses Klasse hat private Variablen obwohl Sie nicht in der Lage, die Benutzerinformationen direkt über die Form-Klasse zu setzen. Sie können jedoch den anderen Konstruktor verwenden und anschließend ToString innerhalb der Funktion btnSave_Click aufrufen.

Addresses User = new Addresses(textBox1.Text, textBox3.Text, textBox5.Text, textBox6.Text, textBox7.Text, textbox8.Text); 
txtInfo.Text = User.ToString();