Поделиться через


ListBox.SelectedIndexCollection Класс

Определение

Представляет коллекцию, содержащую индексы выбранных элементов в ListBox.

public: ref class ListBox::SelectedIndexCollection : System::Collections::IList
public class ListBox.SelectedIndexCollection : System.Collections.IList
type ListBox.SelectedIndexCollection = class
    interface IList
    interface ICollection
    interface IEnumerable
Public Class ListBox.SelectedIndexCollection
Implements IList
Наследование
ListBox.SelectedIndexCollection
Реализации

Примеры

В следующем примере показано, как использовать FindString метод для поиска всех экземпляров текста поиска в элементах ListBox. В примере используется версия FindString метода , которая позволяет указать начальный индекс поиска, из которого будет выполняться непрерывный поиск всех элементов в ListBox. В примере также показано, как определить, когда FindString метод начинает поиск в верхней части списка после того, как он достигнет нижней части списка элементов, чтобы предотвратить рекурсивный поиск. После того как элементы будут найдены в ListBox, они выбираются с помощью SetSelected метода .

private:
   void FindAllOfMyString( String^ searchString )
   {
      // Set the SelectionMode property of the ListBox to select multiple items.
      listBox1->SelectionMode = SelectionMode::MultiExtended;

      // Set our intial index variable to -1.
      int x = -1;

      // If the search string is empty exit.
      if ( searchString->Length != 0 )
      {
         // Loop through and find each item that matches the search string.
         do
         {
            // Retrieve the item based on the previous index found. Starts with -1 which searches start.
            x = listBox1->FindString( searchString, x );

            // If no item is found that matches exit.
            if ( x != -1 )
            {
               // Since the FindString loops infinitely, determine if we found first item again and exit.
               if ( listBox1->SelectedIndices->Count > 0 )
               {
                  if ( x == listBox1->SelectedIndices[ 0 ] )
                                    return;
               }

               // Select the item in the ListBox once it is found.
               listBox1->SetSelected( x, true );
            }
         }
         while ( x != -1 );
      }
   }
private void FindAllOfMyString(string searchString)
{
   // Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended;
   
   // Set our intial index variable to -1.
   int x =-1;
   // If the search string is empty exit.
   if (searchString.Length != 0)
   {
      // Loop through and find each item that matches the search string.
      do
      {
         // Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x);
         // If no item is found that matches exit.
         if (x != -1)
         {
            // Since the FindString loops infinitely, determine if we found first item again and exit.
            if (listBox1.SelectedIndices.Count > 0)
            {
               if(x == listBox1.SelectedIndices[0])
                  return;
            }
            // Select the item in the ListBox once it is found.
            listBox1.SetSelected(x,true);
         }
      }while(x != -1);
   }
}
Private Sub FindAllOfMyString(ByVal searchString As String)
   ' Set the SelectionMode property of the ListBox to select multiple items.
   listBox1.SelectionMode = SelectionMode.MultiExtended

   ' Set our intial index variable to -1.
   Dim x As Integer = -1
   ' If the search string is empty exit.
   If searchString.Length <> 0 Then
      ' Loop through and find each item that matches the search string.
      Do
         ' Retrieve the item based on the previous index found. Starts with -1 which searches start.
         x = listBox1.FindString(searchString, x)
         ' If no item is found that matches exit.
         If x <> -1 Then
            ' Since the FindString loops infinitely, determine if we found first item again and exit.
            If ListBox1.SelectedIndices.Count > 0 Then
               If x = ListBox1.SelectedIndices(0) Then
                  Return
               End If
            End If
            ' Select the item in the ListBox once it is found.
            ListBox1.SetSelected(x, True)
         End If
      Loop While x <> -1
   End If
End Sub

Комментарии

Класс ListBox.SelectedIndexCollection сохраняет индексы для выбранных элементов в ListBox. Индексы, хранящиеся в , ListBox.SelectedIndexCollection являются позициями индекса в ListBox.ObjectCollection классе . Класс ListBox.ObjectCollection хранит все элементы, отображаемые ListBoxв .

В следующей таблице приведен пример ListBox.ObjectCollection хранения элементов ListBox , а также их состояний выбора в примере ListBox.

Индекс Элемент Состояние выделения в элементе ListBox
0 object1 Unselected
1 object2 Выбрано
2 object3 Unselected
3 object4 Выбрано
4 object5 Выбрано

ListBox.ObjectCollection На основе примера из предыдущей таблицы в следующей таблице показано, как ListBox.SelectedIndexCollection будет выглядеть .

Индекс Индекс выбранного элемента в ObjectCollection
0 1
1 3
2 4

Свойства и методы этого класса можно использовать для выполнения различных задач с коллекцией. Метод Contains позволяет определить, является ли позиция индекса из ListBox.ObjectCollection класса членом выбранных индексов, хранящихся в ListBox.SelectedIndexCollection. После того как вы узнаете, что элемент находится в коллекции, можно использовать IndexOf метод , чтобы определить, где хранится определенная позиция индекса в ListBox.ObjectCollection для ListBox .

Конструкторы

ListBox.SelectedIndexCollection(ListBox)

Инициализирует новый экземпляр класса ListBox.SelectedIndexCollection.

Свойства

Count

Возвращает количество элементов в коллекции.

IsReadOnly

Возвращает значение, указывающее, является ли коллекция доступной только для чтения.

Item[Int32]

Возвращает значение для указанного индекса в коллекции.

Методы

Add(Int32)

Добавляет объект ListBox в указанную позицию индекса.

Clear()

Удаляет все элементы управления из коллекции.

Contains(Int32)

Определяет, содержится ли указанный индекс в коллекции.

CopyTo(Array, Int32)

Копирует коллекцию целиком в заданное место существующего массива.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
GetEnumerator()

Возвращает перечислитель для перебора элементов выделенной коллекции индексов.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IndexOf(Int32)

Возвращает индекс в коллекции ListBox.SelectedIndexCollection для указанного индекса из коллекции ListBox.ObjectCollection для списка ListBox.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Remove(Int32)

Удаляет указанный элемент управления из коллекции.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

ICollection.IsSynchronized

Описание этого члена см. в разделе IsSynchronized.

ICollection.SyncRoot

Описание этого члена см. в разделе SyncRoot.

IList.Add(Object)

Описание этого члена см. в разделе Add(Object).

IList.Clear()

Описание этого члена см. в разделе Clear().

IList.Contains(Object)

Описание этого члена см. в разделе Contains(Object).

IList.IndexOf(Object)

Описание этого члена см. в разделе IndexOf(Object).

IList.Insert(Int32, Object)

Описание этого члена см. в разделе Insert(Int32, Object).

IList.IsFixedSize

Описание этого члена см. в разделе IsFixedSize.

IList.Item[Int32]

Описание этого члена см. в разделе Item[Int32].

IList.Remove(Object)

Описание этого члена см. в разделе Remove(Object).

IList.RemoveAt(Int32)

Описание этого члена см. в разделе RemoveAt(Int32).

Методы расширения

Cast<TResult>(IEnumerable)

Приводит элементы объекта IEnumerable к заданному типу.

OfType<TResult>(IEnumerable)

Выполняет фильтрацию элементов объекта IEnumerable по заданному типу.

AsParallel(IEnumerable)

Позволяет осуществлять параллельный запрос.

AsQueryable(IEnumerable)

Преобразовывает коллекцию IEnumerable в объект IQueryable.

Применяется к