将多个表单输入保存到文件中

时间:2013-01-12 15:56:45

标签: c# winforms file-io

将窗体表单保存到文件中以及收集用户输入的几个文本框的最佳方法是什么。我现在用这个:

if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                File.WriteAllText(saveFileDialog1.FileName, tB1.Text);
                File.WriteAllText(saveFileDialog1.FileName, tB2.Text);
            }

这样可以保存第一个文本框中的输入,但是当它出现在另一个文本框中时,它不会保存输入的数据。

6 个答案:

答案 0 :(得分:1)

如何连接两个文本框?为清楚起见,

string forSaving = tB1.Text + "\n" + tB2.Text;
File.WriteAllText(saveFileDialog1.FileName, forSaving);

File.WriteAllText(saveFileDialog1.FileName, tB1.Text + "\n" + tB2.Text);

更新1

string firstName = "FirstName: " + txtFirstName.Text;
string lastName = "LastName: " + txtLastName.Text;
string personAddress = "FirstName: " + txtAddress.Text;
string details = firstName + "\n" + lastName + "\n" + personAddress;
File.WriteAllText(saveFileDialog1.FileName, tB1.Text + "\n" + details);

答案 1 :(得分:1)

然后连接这两个文本框;

File.WriteAllText(saveFileDialog1.FileName, tB1.Text + Environment.NewLine + tB2.Text );

答案 2 :(得分:1)

最好的方法可能是在表单中创建一个方法,该方法将返回一个字符串,其中包含TextBoxes中的所有值到您想要的任何格式。像这样的东西会起作用:

File.WriteAllText(saveFileDialog1.fileName, OutputUserInfo());

然后在OutputUserInfo()内,你可以对你想要的数据进行任何格式化,这样你就可以理解它们的内容。

编辑OutputUserInfo()

的示例
private string OutputUserInfo() {
    return  "First Name: " + tbFirstName.Text + Environment.NewLine +
            "Surname: " + tbSurname.Text + Environment.NewLine +
            "Address" + tbAddress.Text + Environment.NewLine;
            // Just keep adding whatever you want on here.
            // Add the descriptions if you want, it will probably help
}

您也可以使用不同的格式(CSV或其他)。但如果你只是做一个纯文本文件,这可能是最容易的。这取决于你。

答案 3 :(得分:1)

File.WriteAllText可能不好,因为它会覆盖您的内容。

  

创建新文件,将指定的字符串写入文件,然后关闭该文件。如果目标文件已存在,则会被覆盖。

而是使用File.AppendAllText

  

将指定的字符串追加到文件中,如果该文件尚不存在则创建该文件。

答案 4 :(得分:1)

如果是我,我会使用StreamWriter / StreamReader类,因为它们分别有WriteLineReadline方法。

即。像这样的东西

private void button1_Click(object sender, EventArgs e)
{
    if (saveFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        using (StreamWriter sw = new StreamWriter(saveFileDialog1.FileName))
        {
            sw.WriteLine(tB1.Text);
            sw.WriteLine(tB2.Text);
            sw.WriteLine(tB3.Text);
            sw.WriteLine(tB4.Text);
            sw.Close();
        }

   }

}

private void button2_Click(object sender, EventArgs e)
{
    if(openFileDialog1.ShowDialog() == System.Windows.Forms.DialogResult.OK)
    {
        using (StreamReader sr = new StreamReader(openFileDialog1.FileName))
        {
            tB1.Text = sr.ReadLine();
            tB2.Text = sr.ReadLine();
            tB3.Text = sr.ReadLine();
            tB4.Text = sr.ReadLine();
            sr.Close();
        }
    }

}

答案 5 :(得分:1)

我们去,使用Encoding附加所有字符串。

    private void button1_Click(object sender, EventArgs e)
    {
        if (saveFileDialog1.ShowDialog() == DialogResult.OK)
        {
            string line = string.Format("{0},{1}"
            , textBox1.Text
            , textBox2.Text);
            File.AppendAllText(saveFileDialog1.FileName, line, Encoding.GetEncoding(1252));
        }
    }