从文本框到列表视图

时间:2013-06-27 21:40:35

标签: c# listview textbox

我正在开发一个带有多行文本框和listview的C#应用​​。

文本框的内容如下所示:

John Smith
Joe Bronstein
Susan Jones
Adam Feldman

列表视图有两列:DateName

到目前为止,我可以将当​​前日期放入listview的Date列。接下来,我需要将名称复制到Name列中。 listview应如下所示:

Date      Name     
6/27/2013 John Smith
6/27/2013 Joe Bronstein
6/27/2013 Susan Jones
6/27/2013 Adam Feldman

那么如何将textbox中每一行的名称复制到Name中每一行的listview列?

2 个答案:

答案 0 :(得分:2)

这将使用当前日期将textBox中的所有名称添加到listView:

var date = DateTime.Now.ToShortDateString();
foreach (var line in textBox.Lines)
    listView.Items.Add(new ListViewItem(new string[] { date, line}));

工作原理:我们枚举TextBox属性Lines,它逐行返回名称。对于每一行,为ListViewItem中的每列创建了包含字符串数组的新ListView。然后将item添加到listView。

答案 1 :(得分:0)

Lazyberezovsky 回答非常有效。

但是如果你已经在Listview中添加了一个项目,并且想要在已添加Dates之后添加这些行(老实说,我怀疑这只是一个猜测)。然后,您需要使用SubItem将每行添加到新列。现在,当然,ListView Items的{​​strong>相同数量 <{1}}与<{1>} <{strong> Lines Multiline }} Textbox

所以,你的代码可能看起来像这样:

string[] line = textBox1.Lines; // get all the lines of text from Multiline Textbox
int i = 0; // index for the array above
foreach (ListViewItem itm in listView1.Items) // Iterate on each Item of the ListView
{
   itm.SubItems.Add(line[i++]); // Add the line from your textbox to each ListViewItem using the SubItem
}

否则 Lazyberezovsky的答案将完美无缺地解决您的问题。