C#以编程方式更改列表视图中的选定项

时间:2012-07-26 21:54:30

标签: c# listview

更新!

澄清问题。我想使用向上和向下箭头更改列表视图中的所选项目。我已将 keydown 绑定到文本框。如果用户按下句号键,我的列表视图可见。但它并没有集中,这就是为什么我将keydown事件绑定到文本框以便能够更改listview中的selecteditem。

visuaö工作室抱怨的代码就是这个

index = listView1.SelectedIndices[0];

零是某种错误?

我正在使用 listview

如何以编程方式更改listview selecteditem?我现在正在听向上箭头和向下箭头的按键事件。

按下它们我想更改所选项目索引。因此,当按下向上或向下箭头时,它会表现得相同!

我一直在尝试,但它给了我一个难看的错误信息。

参数超出范围异常,附加信息如下:

  

值0对索引无效。这是我向下箭头的代码。

IT真的应该工作我完全不知道这个!

if (e.KeyCode == Keys.Down)
{
    if (listView1.Visible)
    {
        index = listView1.SelectedIndices[0];  
        index = index - 1;
        this.listView1.Items[index].Selected = true;
    }
}

和向上箭头

if (e.KeyCode == Keys.Up)
{
    if (this.listView1.Visible)
    {
        index = listView1.SelectedIndices[0];
        index++;
        this.listView1.Items[index].Selected = true;
    }
}

1 个答案:

答案 0 :(得分:1)

请改为尝试:

if (e.KeyCode == Keys.Down)
{
    if (listView1.Visible && listView1.Items.Count > 0)
    {
        index = listView1.SelectedIndices[0];  
        index = index - 1;
        this.listView1.Items[index].Selected = true;
    }
}

我认为你得到的是IndexOutOfBound,因为列表中没有任何项目。