Ich habe bereits das Speichern von Teil und ich weiß, es funktioniert, aber wenn ich auf Laden klicken, wird es nichts anzeigen, dass ich aus den Textfeldern gespeichert habe, die an die gehen saying.txt dateiLaden von einem TXT zu einem Listenfeld in C#
using System;
using System.IO;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Grades : Form
{
private StreamWriter fil;
public Grades()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
try
{
fil = new StreamWriter("saying.txt"); //This is the txt file
}
catch (DirectoryNotFoundException exc)
{
lstBxDisplay.Text = "Nothing " +
exc.Message;
}
catch (System.IO.IOException exc)
{
lstBxDisplay.Text = exc.Message;
}
}
// saving the files to the saying.txt
private void btnSaveAs_Click(object sender, EventArgs e)
{
try
{
fil.WriteLine(txtBxLastName.Text);
txtBxLastName.Text = "";
txtBxLastName.Focus();
}
catch (System.IO.IOException exc)
{
lstBxDisplay.Text = exc.Message;
}
}
// next is the load button to load the files into the list/display box
private void btnLoad_Click(object sender, EventArgs e)
{
string inValue;
try
{
using (StreamReader infil =
new StreamReader("saying.txt"))
{
inValue = infil.ReadLine();
while (inValue != null)
{
inValue = infil.ReadLine();
if (inValue != null)
this.lstBxDisplay.Items.Add(inValue);
} // end of while
} // end of using
}
catch (System.IO.IOException exc)
{
lstBxDisplay.Text = exc.Message;
}
}
private void Grades_FormClosing(object sender, FormClosingEventArgs e)
{
try
{
fil.Close();
}
catch
{
}
}
}
}
ein Grund, warum es nicht in die Listbox geladen wird? Ich habe sowohl Label als auch Textbox ausprobiert, um die Nachricht anzuzeigen, und keiner von beiden funktioniert. Ich debuggte das Programm und es ist in Ordnung
Ich habe das fil.Close(); Teil, bevor Sie den zweiten Teil des Codes erneut gepostet haben, danke für diesen Hinweis. Allerdings versuche ich einen txtBxFirstName mit ihm und alles, was es zeigt, ist der txtBxLastName. Versuchte das fil.Close nach dem txtBxFirstName und vorher und beide – Joe
Bitte beachten Sie Teil 2 für den Grund, dass es nur den 'txtBxLastName' zeigt. Ihr ursprünglicher Code liest gerade (um die erste Zeile zu erhalten) und Sie prüfen auf Null und geben dann Ihre Schleife ein. An diesem Punkt führen Sie einen zweiten Lesevorgang durch, bevor Sie diese erste Zeile zu Ihrer Listbox hinzufügen. Also, Sie überspringen im Wesentlichen Ihre erste Lesung. Sehen Sie, wie ich in der Schleife die Position der 'lstBxDisplay.Items.Add (inValue)' und die 'inValue = infil.ReadLine()' vertauscht habe. – Mikanikal