我还是太新了,无法显示我的listview的样子,但这里是代码:
private void openClientFileToolStripMenuItem_Click(object sender, EventArgs e)
{
try
{
OpenFileDialog OF = new OpenFileDialog();
OF.ShowDialog(this);
OF.InitialDirectory = "C:\\";
OF.RestoreDirectory = true;
string file = OF.FileName;
System.IO.StreamReader sr = new System.IO.StreamReader(file);
listView1.Items.Clear();
foreach(string line in File.ReadLines(file))
{
ListViewItem lvi = new ListViewItem();
lvi.Text = sr.ReadLine();
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
lvi.SubItems.Add(sr.ReadLine());
listView1.Items.Add(lvi);
}
sr.Dispose();
}
catch(Exception ex)
{
MessageBox.Show(ex.Message, "Error");
}
}
所以这就是问题所在,我上传了文件,它将我的项目准确地放在应该去的地方......除了从列表视图开头的7行以外,我不知道为什么。
然而......如果我注释掉了
的代码行 lvi.Text = sr.ReadLine();
巨大的差距已经消失,但第一栏完全被跳过,这也无法奏效。我做错了什么?
(此外,我尝试加载到listview中的.txt文件中没有任何空白。)
答案 0 :(得分:0)
我不太清楚你为什么要同时使用File.ReadLine和StreamReader.ReadLine。但这是导致错误的原因。你可以这样做来纠正它。
string[] lines = File.ReadAllLines("");
for(int i = 0; i < lines.Length; i= i + 8)
{
ListViewItem lvi = new ListViewItem();
lvi.Text = line[i];
lvi.SubItems.Add(line[i+1]);
lvi.SubItems.Add(line[i+2]);
lvi.SubItems.Add(line[i+3]);
lvi.SubItems.Add(line[i+4]);
lvi.SubItems.Add(line[i+5]);
lvi.SubItems.Add(line[i+6]);
lvi.SubItems.Add(line[i+7]);
listView1.Items.Add(lvi);
}
你需要进行错误处理才能证明这一点。