我正在尝试使用Visual C#将文本框的内容保存到文本文件中.我使用以下代码:
private void savelog_Click(object sender, EventArgs e)
{
if (folderBrowserDialog3save.ShowDialog() == DialogResult.OK)
{
// create a writer and open the file
TextWriter tw = new StreamWriter(folderBrowserDialog3save.SelectedPath + "logfile1.txt");
// write a line of text to the file
tw.WriteLine(logfiletextbox);
// close the stream
tw.Close();
MessageBox.Show("Saved to " + folderBrowserDialog3save.SelectedPath + "\\logfile.txt", "Saved Log File", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Run Code Online (Sandbox Code Playgroud)
但我只在文本文件中获得以下文本行:
System.Windows.Forms.TextBox, Text:
Run Code Online (Sandbox Code Playgroud)
接下来只是文本框中实际内容的一小部分,以"..."结尾.为什么不写文本框的全部内容?
Ed *_*ple 23
在这种情况下,使用TextWriter并不是必需的.
File.WriteAllText(filename, logfiletextbox.Text)
Run Code Online (Sandbox Code Playgroud)
更简单.您需要将TextWriter用于需要长时间保持打开状态的文件.
private void savelog_Click(object sender, EventArgs e)
{
if (folderBrowserDialog3save.ShowDialog() == DialogResult.OK)
{
// create a writer and open the file
TextWriter tw = new StreamWriter(folderBrowserDialog3save.SelectedPath + "logfile1.txt");
// write a line of text to the file
tw.WriteLine(logfiletextbox.Text);
// close the stream
tw.Close();
MessageBox.Show("Saved to " + folderBrowserDialog3save.SelectedPath + "\\logfile.txt", "Saved Log File", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
Run Code Online (Sandbox Code Playgroud)
小解释:tw.WriteLine接受object所以它不关心你通过什么.在内部它调用.ToString.如果.ToString没有覆盖它只返回类型的名称..Text属于内容的财产TextBox
我想你需要的是:
tw.WriteLine(logfiletextbox.Text);
Run Code Online (Sandbox Code Playgroud)
如果你不说'.Text'那就是你得到的
希望有所帮助!