ListBox.SelectedIndex 属性

定义

获取或设置 ListBox 中当前选定项的从零开始的索引。

public:
 virtual property int SelectedIndex { int get(); void set(int value); };
[System.ComponentModel.Bindable(true)]
[System.ComponentModel.Browsable(false)]
public override int SelectedIndex { get; set; }
[<System.ComponentModel.Bindable(true)>]
[<System.ComponentModel.Browsable(false)>]
member this.SelectedIndex : int with get, set
Public Overrides Property SelectedIndex As Integer

属性值

当前选定项的从零开始的索引。 如果未选定任何项,则返回值为负一 (-1)。

属性

例外

指定的值小于 -1,或者大于或等于项的计数。

SelectionMode 属性设置为 None

示例

下面的代码示例演示如何将 属性与 TopIndex 属性结合使用SelectedIndex,将当前所选项移到 的显示区域中项列表的ListBox顶部。 该示例进一步演示如何使用 RemoveAt 类的 System.Windows.Forms.ListBox.ObjectCollection 方法删除项,以及如何使用 方法清除所有项选择 ClearSelected 。 该代码首先将 中 ListBox 当前选定的项移动到列表顶部。 然后,该代码删除当前所选项之前的所有项,并清除 中的所有 ListBox选择。 此示例要求 ListBox 将包含项添加到窗体中,并且当前在 中选择 ListBox一项。

private:
   void RemoveTopItems()
   {
      // Determine if the currently selected item in the ListBox 
      // is the item displayed at the top in the ListBox.
      if ( listBox1->TopIndex != listBox1->SelectedIndex )

      // Make the currently selected item the top item in the ListBox.
      listBox1->TopIndex = listBox1->SelectedIndex;

      // Remove all items before the top item in the ListBox.
      for ( int x = (listBox1->SelectedIndex - 1); x >= 0; x-- )
      {
         listBox1->Items->RemoveAt( x );
      }

      // Clear all selections in the ListBox.
      listBox1->ClearSelected();
   }
private void RemoveTopItems()
{
   // Determine if the currently selected item in the ListBox 
   // is the item displayed at the top in the ListBox.
   if (listBox1.TopIndex != listBox1.SelectedIndex)
      // Make the currently selected item the top item in the ListBox.
      listBox1.TopIndex = listBox1.SelectedIndex;

   // Remove all items before the top item in the ListBox.
   for (int x = (listBox1.SelectedIndex -1); x >= 0; x--)
   {
      listBox1.Items.RemoveAt(x);
   }

   // Clear all selections in the ListBox.
   listBox1.ClearSelected();
}
Private Sub RemoveTopItems()
   ' Determine if the currently selected item in the ListBox 
   ' is the item displayed at the top in the ListBox.
   If listBox1.TopIndex <> listBox1.SelectedIndex Then
      ' Make the currently selected item the top item in the ListBox.
      listBox1.TopIndex = listBox1.SelectedIndex
   End If
   ' Remove all items before the top item in the ListBox.
   Dim x As Integer
   For x = listBox1.SelectedIndex - 1 To 0 Step -1
      listBox1.Items.RemoveAt(x)
   Next x

   ' Clear all selections in the ListBox.
   listBox1.ClearSelected()
End Sub

注解

对于标准 ListBox,可以使用此属性来确定 中所选项的 ListBox索引。 SelectionMode如果 的 ListBox 属性设置为 SelectionMode.MultiSimpleSelectionMode.MultiExtended (这表示多选ListBox) 并在列表中选择了多个项,则此属性可以将索引返回到任何选定项。

若要检索包含多选 ListBox中所有选定项的索引的集合,请使用 SelectedIndices 属性。 如果要获取 当前在 中选择的 ListBox项,请使用 SelectedItem 属性。 此外,可以使用 SelectedItems 属性获取多选 ListBox项中的所有选定项。

适用于

另请参阅