Member 11856456 Ответов: 2

Как я могу перезапустить свой выбор индекса, как только индекс достигнет конца


Я пытаюсь вернуться к началу моих элементов listview, как только я достигну конца. Вместо этого я продолжаю получать "систему.ArgumentOutOfRangeException: 'InvalidArgument=значение '21' недопустимо для 'index'." ошибка.

вот мой код:
Dim previousSelectedIndex As Integer = Me.SelectedItems(0).Index

               If Me.SelectedIndices(0) < 21 Then
                   Me.Items(previousSelectedIndex + 1).Selected = True
               Else

                   Me.Items(previousSelectedIndex).Selected = False
                   Me.Items(0).Selected = True
               End If


Что я уже пробовал:

Я попытался перевернуть это утверждение. Я также попытался использовать elseif, однако это тоже не сработало.

2 Ответов

Рейтинг:
18

Member 11856456

Исправил мою проблему. теперь мой процесс выбора начинается сверху, и когда он достигает конца, я могу нажать enter, и он вернет меня на вершину.

Вот этот код:

Dim previousSelectedIndex As Integer = Me.SelectedItems(0).Index

               If Me.Items.Item(previousSelectedIndex).Index = Me.Items.Count - 1 Then
                   Me.Items(0).Selected = True
               Else
                   Me.Items(previousSelectedIndex + 1).Selected = True
               End If


Рейтинг:
1

Christian Graus

Почему ваша ценность жестко закодирована? Если это цикл, вы можете проверить, достигло ли значение конца вашей последовательности, и сбросить его до нуля. Почему вы хотите бесконечно петлять?


Member 11856456

Кристиан, эта часть кода будет находиться в событии нажатия клавиши, которое инициируется нажатием клавиши enter. На данный момент он будет проходить через элементы, но получит ошибку, упомянутую выше, как только она достигнет максимального индексного номера.