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)
我创建了简单的示例,但我无法在任何地方找到解决方案。我想保存 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)