ListViewSubtemCollection对其键使用什么?

时间:2020-03-06 15:00:11  来源:igfitidea点击:

我试图获取某些ListViewSubItems的值,但我不知道它的键使用什么值。我有一些简单的代码:

protected override void OnItemDrag(ItemDragEventArgs e)
    {
        base.OnItemDrag(e);            
        ListViewItem item = e.Item as ListViewItem;
        string val = item.SubItems[???].ToString(); 
    }

这 ???部分是我有问题的地方。我不知道键是什么。我没有运气尝试过ListView的列名。我想使用这种方法,而不是使用数字索引。

解决方案

不幸的是,子项目仅按列索引排序。因此,我们必须像这样访问它们:

protected override void OnItemDrag(ItemDragEventArgs e)
{
    base.OnItemDrag(e);            
    ListViewItem item = e.Item as ListViewItem;
    string val = item.SubItems[0].ToString(); 
}

我们只能使用列索引添加子项,但是通过进行包含每个列索引的枚举,可以使其更易于阅读。

ListViewSubItem`的键是[Name]属性,如此处所述。

将Name设置为等于列名,将允许我们按列名索引到SubItems中。

并以一些代码为例

ListViewItem myListViewItem = new ListViewItem(); ListViewItem.ListViewSubItem myListViewSubItem =新的ListViewItem.ListViewSubItem(); myListViewSubItem.Text ="将被显示"; myListViewSubItem.Name ="我的钥匙"; myListViewItem.SubItems.Add(myListViewSubItem); ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems [" my key"];