2016-04-27 2 views
0

У меня есть текстовый файл с номерами года, а строка возвращается, а затем еще номер.Выберите конкретный элемент в массиве vb

Year 1991 
8 
Year 1990 
14 

Массив несет номер года, а другой несет номер под ним.

strYear(intCount) = objReader.ReadLine() 
dblSum(intCount) = Convert.ToDouble(objReader.ReadLine()) 

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

ответ

2

Вы можете использовать SelectedIndex из ComboBox как индекс в массиве.

Dim sum = dblSum(myComboBox.SelectedIndex) 

Тем не менее, вместо того, чтобы делать это таким образом, почему бы не добавить оба значения к одному объекту, поместить эти объекты в списке, а затем привязать этот список к ComboBox. Затем вы можете получить значение суммы непосредственно из свойства SelectedValueComboBox. Например.

Dim items As New List(Of Tuple(Of String, Double)) 

'... 

items.Add(Tuple.Create(objReader.ReadLine(), Convert.ToDouble(objReader.ReadLine())) 

'... 

With myComboBox 
    .DisplayMember = "Item1" 
    .ValueMember = "Item2" 
    .DataSource = items 
End With 

'... 

Dim sum = CDbl(myComboBox.SelectedValue) 

Здесь удобно использовать кортежи, но вы можете использовать свой класс или структуру, если хотите.

0

Поскольку вы читаете чередующиеся строки из вашего текстового файла на два массива (первые годы, числа во-вторых), индекс во второй массив чисел должен быть таким же, как индекс, в первый массив лет.

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

Таким образом, dblSum(myComboBox.SelectedIndex) предоставит вам правильный номер.

Смежные вопросы