Добавьте все строки, извлеченные из исходного файла, когда текущая строка кратна предварительно определенному количеству пропускаемых строк или 0
, в ListBox и разрешите пользователю выбирать имя из списка для заполните некоторые ярлыки деталями, относящимися к выбранному имени.
- Разобрать и извлечь имена людей из массива строк. Каждое имя можно найти по индексу, кратному значению, указанному в поле
skipLines
.
- Добавить каждое имя в элемент управления ListBox.
- Когда имя выбрано из списка имен ListBox, добавьте связанные детали к некоторым меткам (здесь именуются
lblPhoneNumber
и lblAddress
). Чтобы определить правильную информацию в массиве, мы используем значение skipLines
в качестве множителя на этот раз. Таким образом, даже если вы добавите некоторые подробности в список имен, вы найдете правильную информацию, изменяющую только значение skipLines
.
Вам необходимо подписаться на SelectedIndexChanged событие ListBox:
Public Class Form1
private people As String()
private skipLines As Integer = 0
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
skipLines = 3
people = File.ReadAllLines([Source File])
For line As Integer = 0 To people.Length - 1
If line Mod skipLines = 0 Then
ListBox1.Items.Add(people(line))
End If
Next
End Sub
Private Sub ListBox1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ListBox1.SelectedIndexChanged
Dim StartIndex As Integer = ListBox1.SelectedIndex * skipLines
lblPhoneNumber.Text = people(StartIndex + 1)
lblAddress.Text = people(StartIndex + 2)
End Sub
End Class
Как это работает :
Определите количество пропускаемых строк. Мы хотим строку текста, затем пропустите 3 строки, здесь:
Dim skipLines As Integer = 3
Мы создаем массив строк. Он будет содержать вывод File.ReadAllLines
, который, конечно, возвращает массив строк:
Dim people As String() = File.ReadAllLines([Source File])
Итерация всего содержимого массива строк, строка за строкой. Перечисление коллекции начинается с 0
, поэтому мы анализируем список с 0
по количеству элементов - 1
:
For line As Integer = 0 To people.Length - 1
(...)
Next
Условие If
, если выполняется, когда номер текущей строки кратен skipLines
.
Оператор Mod делит два числа и возвращает остаток от операции. Если напоминания нет, число line
равно кратному skipLines
, числу строк, которое мы хотим пропустить.
If line Mod skipLines = 0 Then
(...)
End If
Наконец, когда условие выполнено, добавьте содержимое массива строк (массив people
) в индекс, представленный текущим значением line
, в коллекцию ListBox.Items
:
ListBox1.Items.Add(people(line))