选择索引上的列表框错误
本文关键字:错误 列表 索引 选择 | 更新日期: 2023-09-27 18:33:58
我在wform上有一个列表框控件,同样是单个项目选择模式或一个项目选择模式。我正在尝试从form_KeyDown事件中滚动它,如下所示
if ((Keys)e.KeyCode == Keys.Down)
{
if (listBox2.Items.Count >= listBox2.SelectedIndex)
{
listBox2.SelectedIndex++;
}
}
但它会抛出一个错误,例如"ArgumentOutOfRangeException 未处理"值 =23 的无效参数对选择索引无效。
如何下车?
试试这个:
if ((Keys)e.KeyCode == Keys.Down)
{
if ((listBox2.Items.Count-1) > listBox2.SelectedIndex)
{
listBox2.SelectedIndex++;
}
}
请记住,如果您有 23 个项目,SelectedIndex
从 0 变为 22...
ListBox.SelectedIndex 是一个从零开始的数组 IE 索引中的第一个项目将为 0,而 Items.Count 将始终返回从 1 开始的值。
有关详细信息,请参阅以下内容:http://msdn.microsoft.com/en-us/library/system.windows.forms.listbox.selectedindex.aspx
亲切的问候,韦恩
根据 MSDN 关于ListBox.SelectedIndex
的文档:
当前选定项的从零开始的索引。负值 如果未选择任何项目,则返回一个 (-1)。
所以,我相信你需要改变
if (listBox2.Items.Count >= listBox2.SelectedIndex)
自
if (listBox2.Items.Count-1 > listBox2.SelectedIndex)
请投票给马可的答案是正确的,因为他向我指出了这一点!
因为如果列表框中有 23 个项目,则项目 23 实际上是项目 22,项目 1 实际上是项目 0,依此类推。