C# 选择索引上的列表框错误
我在winform上有一个listbox控件,它是单项目选择模式或单项目选择模式。我正在尝试从窗体向下滚动它,如下所示C# 选择索引上的列表框错误,c#,visual-studio,C#,Visual Studio,我在winform上有一个listbox控件,它是单项目选择模式或单项目选择模式。我正在尝试从窗体向下滚动它,如下所示 if ((Keys)e.KeyCode == Keys.Down) { if (listBox2.Items.Count >= listBox2.SelectedIndex) { listBox2.SelectedIndex++; } } 但它会抛出一个错误,如“ArgumentOutOfRangeExcept
if ((Keys)e.KeyCode == Keys.Down)
{
if (listBox2.Items.Count >= listBox2.SelectedIndex)
{
listBox2.SelectedIndex++;
}
}
但它会抛出一个错误,如“ArgumentOutOfRangeException未处理”
value=23的无效参数对于选择索引无效。
如何摆脱困境?试试以下方法:
if ((Keys)e.KeyCode == Keys.Down)
{
if ((listBox2.Items.Count-1) > listBox2.SelectedIndex)
{
listBox2.SelectedIndex++;
}
}
请记住,如果您有23项,SelectedIndex
从0变为22…请尝试以下操作:
if ((Keys)e.KeyCode == Keys.Down)
{
if ((listBox2.Items.Count-1) > listBox2.SelectedIndex)
{
listBox2.SelectedIndex++;
}
}
请记住,如果您有23个项目,SelectedIndex
从0变为22…根据列表框。SelectedIndex
:
当前所选项目的基于零的索引。负值
如果未选择任何项目,则返回一个(-1)
所以,我相信你需要改变
if (listBox2.Items.Count >= listBox2.SelectedIndex)
到
请投票给马可正确的答案,因为他向我指出了这一点强>
因为如果列表框中有23个项目,则项目23实际上是项目22,项目1实际上是项目0,等等。根据列表框。选择索引
:
当前所选项目的基于零的索引。负值
如果未选择任何项目,则返回一个(-1)
所以,我相信你需要改变
if (listBox2.Items.Count >= listBox2.SelectedIndex)
到
请投票给马可正确的答案,因为他向我指出了这一点强>
因为如果列表框中有23个项目,那么项目23实际上是项目22,项目1实际上是项目0,等等。listbox.SelectedIndex是一个基于零的数组,即索引中的第一个项目将是0,而items.Count将始终返回一个从1开始的值 有关更多信息,请参见以下内容:
您好,WayneListBox.SelectedIndex是一个从零开始的数组,即索引中的第一项将为0,而Items.Count将始终返回一个从1开始的值 有关更多信息,请参见以下内容:
亲切问候,Wayne如果
Count=23
和SelectedIndex=22
(最后一个)你的如果(…)
是真的,你会得到同样的例外如果Count=23
和SelectedIndex=22
(最后一个)你的如果(…)
,你会得到同样的例外