Open/save 多个文本框值 c# windows 表单

Open/save multiple textbox values c# windows forms

我创建了简单的示例,但我无法在任何地方找到解决方案。我想保存 UI 文本框数据,并在另一个(相同的)windows 表单文件中打开它。 这是代码示例:

private void btnSave_Click(object sender, EventArgs e)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                StreamWriter write = new StreamWriter(File.Create(sfd.FileName));
                write.Write(txtFirstInput.Text);
                write.Write(txtSecondInput.Text);
                write.Close();
                write.Dispose();
            }
        }

        private void btnOpen_Click(object sender, EventArgs e)
        {
            OpenFileDialog ofd = new OpenFileDialog();
            if(ofd.ShowDialog() == DialogResult.OK)
            {
                StreamReader read = new StreamReader(File.OpenRead(ofd.FileName));
                txtFirstInput.Text = read.ReadLine();
                txtSecondInput.Text = read.ReadLine();
                read.Close();
                read.Dispose();
            }
        }

我遇到的问题是所有输入的数据都在第一个文本框中。怎么分开呢?什么是最简单有效的方法? 我应该创建和使用字节缓冲区(和 HxD)来通过用户输入进行流式传输吗?

谁能给我一些指导或例子。

感谢您的宝贵时间

你使用ReadLine读回数据,所以写数据到磁盘时需要使用WriteLine

private void btnSave_Click(object sender, EventArgs e)
{
    SaveFileDialog sfd = new SaveFileDialog();
    if (sfd.ShowDialog() == DialogResult.OK)
    {
        using(StreamWriter write = new StreamWriter(File.Create(sfd.FileName)))
        {
            write.WriteLine(txtFirstInput.Text);
            write.WriteLine(txtSecondInput.Text);
        }
    }
}

使用 Write,数据写入磁盘时没有一行回车 return,因此数据仅在一行中。当您调用 ReadLine 时,所有数据都被读取并放在第一个文本框中。

另请注意,始终建议在 using 语句中包含一个 IDisposable 对象,例如 StreamWriter。这种方法将确保您的 Stream 正确关闭并在出现异常时进行处理。 (同样适用于下面的StreamReader)