2013-04-10 1 views
0

ok, поэтому все ответы, которые я нашел, касаются подпроцедур. Мне не нужно то, что мне нужно, это заполнить поле списка из массива на основе выбора combobox. Он должен быть активирован btnCalculate блокзаполнить поле списка из массива на основе выбора combobox в vb

, например, если выбор выпадающий является 3 мне нужно окно списка для заполнения futureValueArray (0) futureValueArray (1) futureValueArray (2)

вот мой код для процедуры btnCalculate

Private Sub btnCalculate_Click(ByVal sender As System.Object, 
     ByVal e As System.EventArgs) Handles btnCalculate.Click 
    Try 
     If IsValidData() Then 
      Dim monthlyInvestment As Decimal = 
       Convert.ToDecimal(txtMonthlyInvestment.Text) 
      Dim yearlyInterestRate As Decimal = 
       Convert.ToDecimal(txtInterestRate.Text) 
      Dim years As Integer = Convert.ToInt32(cboYears.Text) 

      Dim monthlyInterestRate As Decimal = yearlyInterestRate/12/100 
      Dim months As Integer = years * 12 

      Dim futureValue As Decimal = Me.FutureValue(
       monthlyInvestment, monthlyInterestRate, months) 

      Dim futureValueArray(19) As String 
      futureValueArray(0) = "Year 1: " & CStr((monthlyInvestment * 12) * yearlyInterestRate) 
      futureValueArray(1) = "Year 2: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 2) 
      futureValueArray(2) = "Year 3: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 3) 
      futureValueArray(3) = "Year 4: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 4) 
      futureValueArray(4) = "Year 5: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 5) 
      futureValueArray(5) = "Year 6: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 6) 
      futureValueArray(6) = "Year 7: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 7) 
      futureValueArray(7) = "Year 8: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 8) 
      futureValueArray(8) = "Year 9: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 9) 
      futureValueArray(9) = "Year 10: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 10) 
      futureValueArray(10) = "Year 11: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 11) 
      futureValueArray(11) = "Year 12: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 12) 
      futureValueArray(12) = "Year 13: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 13) 
      futureValueArray(13) = "Year 14: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 14) 
      futureValueArray(14) = "Year 15: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 15) 
      futureValueArray(15) = "Year 16: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 16) 
      futureValueArray(16) = "Year 17: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 17) 
      futureValueArray(17) = "Year 18: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 18) 
      futureValueArray(18) = "Year 19: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 19) 
      futureValueArray(19) = "Year 20: " & CStr(((monthlyInvestment * 12) * yearlyInterestRate) * 20) 

      ListBoxFutureValue.Text = FormatCurrency(futureValue) 
      txtMonthlyInvestment.Select() 

      ListBoxFutureValue.Items.Add(futureValue) 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message & vbCrLf & vbCrLf & 
      ex.GetType.ToString & vbCrLf & vbCrLf & 
      ex.StackTrace, "Exception") 
    End Try 
End Sub 

вот код для моего комбобоксе

Private Sub frmFutureValue_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load 
    Dim items() As String = 
    {"Please select a number: ", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20"} 
    For Each item As String In items 
     cboYears.Items.Add(item) 
    Next 

    If cboYears.Items.Count > 0 Then 
     cboYears.SelectedIndex = 3 ' The first item has index 0 ' 
    End If 

End Sub 

по моему мнению, мне нужен цикл while, но я не знаю, как сравнить их, чтобы заполнить список. Я очень смущен. Мозг не worky

+0

кстати есть 4 из нас работают над этим в школьном форуме и ни один из мы можем найти ответ после 3 дней поиска. В нашем учебнике нет ничего, что помогает, и в Интернете полно вещей, которые действительно не имеют смысла для кучки начинающих – thewaytonever

ответ

1

Не уверен, если я правильно понял вопрос, но если бы я сделал, код, который вы хотите,

Dim selectedNumber As Integer 
    Integer.TryParse(cboYears.SelectedItem, selectedNumber) 
    ListBoxFutureValue.Items.Clear() 
    For i = 0 To selectedNumber - 1 
     ListBoxFutureValue.Items.Add(futureValueArray(i)) 
    Next 
+0

, чтобы уточнить, что я хочу заполнять элементы из futreValueArray, равные числу (1-20), выбранному в поле со списком, если эта помощь я проверю ваш код и вернусь к вам через мгновение – thewaytonever

+0

, который сделал трюк теперь только для того, чтобы добавить ясный метод списка, и будет хорошо идти. большое спасибо за вашу помощь. – thewaytonever

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