如何在单击项目时获取listview项目索引?

时间:2017-03-14 14:55:22

标签: c# .net winforms listview

例如,如果我点击第一个项目,它将在索引0处。 如果我点击第15项,则索引应为16。

我试过

private void listView1_SelectedIndexChanged(object sender, EventArgs e)
        {
            int index = listView1
        }

但我不确定这是否是正确的事件,或者我应该使用listView1_Click事件?

listView1没有任何属性SelectedIndex。 最后一件事是我想根据我点击的项目的索引获取项目文本。

5 个答案:

答案 0 :(得分:2)

使用ListView.SelectedIndices属性:

List<int> selectedIndices = listView1.SelectedIndices.Cast<int>().ToList();

它返回所选索引的集合(因为默认情况下,如果单击按下Ctrl或Shift键的项目,则可以在列表视图中选择多个项目)。另请注意,取消选择所有项目时,此集合将为空,listView1.SelectedIndices[0]之类的内容将引发IndexOutOfRange例外。

但是,如果您将MultiSelect属性设置为false。然后此集合将始终包含零个或一个项目。您可以使用Count的{​​{1}}属性来检查项目是否已被选中:

SelectedIndicesCollection

答案 1 :(得分:1)

假设您想要当前所选项目的索引,您可以这样做:
int index = ListView1.FocusedItem.Index

答案 2 :(得分:0)

你需要使用选定的索引列表,你也可以这样做。

describe("log reporting", function () {    
  beforeEach(function(){
    spyOn(window.console, 'log');
  });
  it('should print log message to console', function(){
    test();
    expect(window.console.log).toHaveBeenCalled();
  })
});

答案 3 :(得分:0)

首先,您可以获得如下所示的listview项目对象

ListViewItem lst=(ListViewItem)listView.SelectedItems[0];

从该对象(l​​st)您可以获得如下文本

string text=lst.Content.ToString();

答案 4 :(得分:-1)

根据MSDN,仍然有SelectedIndex。在我看来,你的事件是错误的,但你仍然可以通过.SelectedIndex看到它。正如之前提到的那样。 更新:根据评论,链接是正确的情况。