簡體   English   中英

選擇索引上的列表框錯誤

[英]Listbox Error On Selection Index

我在winform上有一個列表框控件,同樣是Single Items SelectionMode或One Items Selection Mode。 我正在嘗試從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 ...

根據MSDNListBox.SelectedIndex的文檔

當前所選項目的從零開始的索引。 如果未選擇任何項目,則返回負一(-1)的值。

所以,我相信你需要改變

if (listBox2.Items.Count >= listBox2.SelectedIndex)

if (listBox2.Items.Count-1 > listBox2.SelectedIndex)

正如他向我指出的那樣,請投票給Marco正確的答案!

因為如果列表框中有23個項目,則項目23實際上是項目22,項目1實際上是項目0,依此類推。

ListBox.SelectedIndex是從零開始的數組IE,索引中的第一項將為0,而Items.Count始終返回從1開始的值。

請參閱以下內容以獲取更多信息: http : //msdn.microsoft.com/zh-cn/library/system.windows.forms.listbox.selectedindex.aspx

親切的問候,韋恩

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM