1

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

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

这 ???部分是我遇到问题的地方。我无法弄清楚钥匙是什么。我尝试了 ListView 的列名,但没有成功。我想使用这种方法而不是使用数字索引。

4

3 回答 3

1

您只能使用列索引来添加子项,但您可以通过创建包含每个列的索引的枚举来使其更易于阅读。

于 2008-10-01T23:36:52.980 回答
1

的关键是这里描述ListViewSubItem的属性。Name

将 Name 设置为等于列名,将允许您按列名对 SubItems 进行索引。

并以一些代码为例

ListViewItem myListViewItem = new ListViewItem();
ListViewItem.ListViewSubItem myListViewSubItem = new ListViewItem.ListViewSubItem();
myListViewSubItem.Text = "This will be displayed";
myListViewSubItem.Name = "my key";
myListViewItem.SubItems.Add(myListViewSubItem);
ListViewItem.ListViewSubItem subItem = myListViewItem.SubItems["my key"];

于 2008-10-02T00:15:52.030 回答
0

不幸的是,子项仅按列索引排序。所以你必须像这样访问它们:

protected override void OnItemDrag(ItemDragEventArgs e)
{
    base.OnItemDrag(e);            
    ListViewItem item = e.Item as ListViewItem;
    string val = item.SubItems[0].ToString(); 
}
于 2008-10-01T23:33:37.030 回答