如何使用Streamwriter将TextBox文本保存到文本文件
问题描述:
Firstoff我必须说我是新来的C#编程。我的问题是,我有一个窗口,里面有一个文本框和一个按钮,我试图完成的是将一些文本写入文本框,然后在按钮上单击我想将该文本保存到ukony.txt文件中。但使用下面的代码,点击按钮后没有任何反应。如何使用Streamwriter将TextBox文本保存到文本文件
public partial class Window1 : Window {
public Window1() {
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
Window1 a = new Window1();
using (StreamWriter writer = new StreamWriter(writerfile))
{
writer.WriteLine(a.textBlock.Text);
writer.WriteLine(a.textBlock1.Text);
}
}
}
答
不工作的原因是Window1
类的新创建的实例。这与您实际看到的UI完全不同。所以,你不必在那个地方创建一个实例,直接使用文本框名称访问
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
using (StreamWriter writer = new StreamWriter(writerfile))
{
writer.WriteLine(textBlock.Text);
writer.WriteLine(textBlock1.Text);
}
}
答
不使用窗口的新实例。使用当前的。要访问当前实例的的TextBlocks你应该使用this
关键字:
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
using (StreamWriter writer = new StreamWriter(writerfile))
{
writer.WriteLine(this.textBlock.Text);
writer.WriteLine(this.textBlock1.Text);
}
}
问题详细:这条线:
Window1 a = new Window1();
创建空控件的新窗口。这些与您在屏幕上看到的内容不一样,您可能在其中输入了某些内容。
答
你为什么要使用StreamWriter
的文本?我认为这样更容易:
private void button_Click(object sender, RoutedEventArgs e)
{
string writerfile = @"D:\Games\ukony.txt";
System.IO.File.WriteAllText(writerFile, this.textBlock.Text);
System.IO.File.AppendAllText(writerFile, this.textBlock1.Text);
}
由于您使用空的“TextBox”制作“新”Windows,因此不会生成'Window'的新实例。使用'this','Window'的当前实例(或当前窗口),如下所示:'writer.WriteLine(this.textBlock.Text);' – Nino
Cases:01)Window1初始化为按钮单击事件,其中文本框文本将总是空的,02)事件可能不会被绑定 –
[使用StreamWriter将行添加到文件](https://stackoverflow.com/questions/7306214/append-lines-toa-a-文件使用的一个流写器) –