2016-04-27 24 views
0

私は年番号のテキストファイルを持っています。配列内の特定の項目を選択するvb

Year 1991 
8 
Year 1990 
14 

配列は、年間数を運び、他の一つは、それ以下の番号を運びます。

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

ユーザーがコンボボックスから年を選択して出力しましたが、選択した年の見た目の番号を出力する方法がわかりません。

答えて

2

ComboBoxSelectedIndexを配列のインデックスとして使用できます。言っ

Dim sum = dblSum(myComboBox.SelectedIndex) 

、代わりにそのようにそれを行うのは、なぜ、一つのオブジェクトに両方の値を追加しないでリストにそれらのオブジェクトを配置し、ComboBoxにそのリストをバインドします。 ComboBoxSelectedValueプロパティから直接合計値を取得することができます。例えば。

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

テキストファイルの代替行を2つの配列(年、最初、2番目)に読み込むので、2番目の数値配列へのインデックスは、最初の配列のインデックスと同じにする必要があります。

コンボボックスに直接挿入するために年の最初の配列を使用する場合、コンボの選択インデックスは、選択した年に関連付けられた番号の配列へのインデックスになります。

だから、dblSum(myComboBox.SelectedIndex)は正しい番号を与えます。

関連する問題