0

更新!

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

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

index = listView1.SelectedIndices[0];

零在某种程度上是错误的?

我正在使用列表视图

如何以selecteditem编程方式更改列表视图?我目前正在听向上箭头和向下箭头的按键事件。

当他们被按下时,我想更改所选项目的索引。这样它的行为就与按下向上或向下箭头使其聚焦时一样!

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

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

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

它真的应该工作我对此一无所知!

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;
    }
}
4

1 回答 1

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因为你在列表中没有任何项目。

于 2012-07-26T21:57:47.033 回答