我正在使用StreamWriter在dataGridView中的所有现有单元格上写入所有值,该编写器工作正常。但我的读者并没有很好地开展工作。
这是我的编写代码(没有问题):
StreamWriter writer = new StreamWriter(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
writer.WriteLine(cell.Value);
}
}
writer.Close();
这是我的读者代码:
StreamReader sr = new StreamReader(valuePath);
foreach (DataGridViewRow row in dataGridView1.Rows)
{
foreach (DataGridViewCell cell in row.Cells)
{
cell.Value = sr.ReadLine();
}
}
sr.Close();
输出: 的周一 的 1 的星期二 的 2 的星期三 3
此代码正在将每行从txt文件读入我的dataGridView中的“现有单元格”,因此当应用程序打开时,只有一行。这就是为什么我的读者不能正常工作的原因。有人可以帮我解决这个问题吗?
答案 0 :(得分:1)
我建议您以这种格式编写文本文件:
cell1,cell2,...
cell1,cell2,...
cell1,cell2,...
...
要执行此操作,请将您的writer
代码更改为:
StreamWriter writer = new StreamWriter(valuePath);
string line;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
line = "";
foreach (DataGridViewCell cell in row.Cells)
{
line += cell.Value.ToString();
}
writer.WriteLine(line);
}
writer.Close();
reader
代码应相应更改为:
StreamReader sr = new StreamReader(valuePath);
string line;
string[] values;
int n=0;
while(!sr.EndOfStream)
{
line = sr.ReadLine();
values = line.Split(',');
for(int m=0; m<values.Length; m++)
{
dataGridView1[m, n].Value = values[m];
}
n++;
}
sr.Close();