C#将listView写入txt?

时间:2013-05-03 18:35:22

标签: c# listview

我有写listView到txt的问题,我的代码将所有列(第一和第二)写入txt。 我有这段代码:

        using (StreamWriter sw = new StreamWriter("databaseEN.txt"))
        {
            foreach (ListViewItem item in listView1.Items)
            {
                sw.WriteLine(item.Text);
                for (int i = 1; i < item.SubItems.Count; i++)
                {
                    sw.WriteLine(item.SubItems[i].Text);
                }
            }
        }

我需要写第一列而不是所有列到我的txt,如何更改?

3 个答案:

答案 0 :(得分:1)

ListViewItem包含许多SubItems,您可以从item变量中访问该item.SubItems[0].Text;

{{1}}

这将只获得第一列。您还可以将列名指定为字符串。

答案 1 :(得分:0)

这是我想出的。这个对我有用。由于使用了注释和新行,因此看起来很长,因此保存后在文本文件中看起来不错。

// Save File Button
        private void save_button_Click(object sender, EventArgs e)
        {

            System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine + Environment.NewLine);

            // Columns NAMES
            for (int c = 0; c < timeTable_listView.Columns.Count; c++)
            {
            System.IO.File.AppendAllText(@"C:\bbbb.txt", timeTable_listView.Columns[c].Text+"\t");
            }

            // Add new Line int the txt file
            System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine + Environment.NewLine);


            // Get all Items  "loop All items"
            for (int i = 0; i < timeTable_listView.Items.Count; i++)
            {

                // Loop all Sub Items of the Current Item "[i]"
                for (int a = 0; a < timeTable_listView.Items[i].SubItems.Count; a++)
                {
                    // Write the sub item "[a]" to the file with "tab betwen each item"
                    System.IO.File.AppendAllText(@"C:\bbbb.txt", timeTable_listView.Items[i].SubItems[a].Text + "\t");
                }

                // Add new Line "the new Row" starts at new line
                System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine);
            }

        }

Iamege: Form

Image: TXT File

仅代码:-------------------------------------------- --------------------

private void save_button_Click(object sender, EventArgs e)
        {
System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine + Environment.NewLine);

            for (int c = 0; c < timeTable_listView.Columns.Count; c++)
            {
            System.IO.File.AppendAllText(@"C:\bbbb.txt", timeTable_listView.Columns[c].Text+"\t");
            }

            System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine + Environment.NewLine);

            for (int i = 0; i < timeTable_listView.Items.Count; i++)
            {

                for (int a = 0; a < timeTable_listView.Items[i].SubItems.Count; a++)
                {
                    System.IO.File.AppendAllText(@"C:\bbbb.txt", timeTable_listView.Items[i].SubItems[a].Text + "\t");
                }
                System.IO.File.AppendAllText(@"C:\bbbb.txt", Environment.NewLine);
            }

        }

答案 2 :(得分:-1)

删除以下行:

for (int i = 1; i < item.SubItems.Count; i++)
{
    sw.WriteLine(item.SubItems[i].Text);
}

编辑:从这里提取http://msdn.microsoft.com/en-us/library/aa983553(v=vs.71).aspx

  

Windows窗体ListView控件可以显示其他文本,或   子视图,用于“详细信息”视图中的每个项目。 显示第一列   项目文本,例如员工编号。第二,第三,和   后续列显示第一个,第二个和后续   相关的子项目。