上传 .txt 文件后列表视图中出现巨大间隙 (C#)

Massive Gap in listview after uploading .txt file (C#)

我还太新,无法显示我的列表视图的样子,但这是代码:

    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();

巨大的差距消失了,但是第一列被完全跳过,这也不起作用。我做错了什么?

(我尝试加载到列表视图中的 .txt 文件中也没有任何空白。)

我不太清楚你为什么要同时做 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);
       }

您将需要错误处理来确保万无一失。