开发者

Select the specific column of ListView and print it in a new messagebox in C#.net

I've just started to use ListView in C#.net.

I got to know how to add items and subitems. Going through the listview I wanted to fetch all the data from a whole column with multiple rows.

I want to know how to do this.

I found this code to list a specific selected data from a row:

ListView.SelectedIndexCollection sel = listView1.SelectedIndices开发者_如何学Go;

        if (sel.Count == 1)
        {
            ListViewItem selItem = listView1.Items[sel[0]];
            MessageBox.Show(selItem.SubItems[2].Text);
        }

That was helpful but i want to list all the items in a row, may be i want to add all the column items in array?


    private string[] GetListViewItemColumns(ListViewItem item) {
        var columns = new string[item.SubItems.Count];
        for (int column = 0; column < columns.Length; column++) {
            columns[column] = item.SubItems[column].Text;
        }
        return columns;
    }

I would recommend some caution against doing this. A ListView is really meant to display information, it is not a great collection class. Getting the data out of it is slow and crummy, it can only store strings. Keep the data in your program in its original form, maybe a List<Foo>. Now it is simple and fast.


foreach (ListViewItem item in listView1.Items) {
    // Do something with item
}


you could do this by foreach(ListViewItem item in listView1.Items) { foreach(var subtem in item.SubItems) { // Do what ever you want to do with the items. } }

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜