2016-10-12 5 views
0

내 4 개의 콤보 상자에서 선택한 값을 가져와 Windows 양식에서 자동으로 함께 추가하려고합니다. 콤보 박스 항목은 0, 75, 0,8 등입니다. combobox에서 선택한 값을 모두 텍스트 상자에 추가하려면 어떻게합니까?콤보 상자에서 십진수를 선택할 때 자동으로 값을 계산하십시오.

나는 지금 5 시간 동안 노력했고 정말로 이해할 수 없다. 참고하시기 바랍니다. 저는 정말 초보자입니다.

감사합니다.

+0

'ComboBox.SelectedIndexChanged' 이벤트를 사용하십시오. –

+0

숫자가 이미 캐스팅 된 값을 반환하는 NumericUpDown 컨트롤로 전환하는 것이 더 좋습니다 – tinstaafl

답변

1

모든 콤보 상자에서 TextChanged 이벤트를 처리하고 합계를 계산하고 결과를 텍스트 상자에 지정할 수 있습니다.

private void Form1_Load(object sender, EventArgs e) 
{ 
    foreach (var comboBox in this.Controls.OfType<ComboBox>()) 
    { 
     comboBox.TextChanged += ComboBox_TextChanged; 
     InitializeComboBox(comboBox); 
    } 
} 

private void ComboBox_TextChanged(object sender, EventArgs e) 
{ 
    double result = 0; 
    foreach (var comboBox in this.Controls.OfType<ComboBox>()) 
    { 
     if (!string.IsNullOrEmpty(comboBox.Text)) 
     { 
      result += Convert.ToDouble(comboBox.Text); 
     } 
    } 

    textBox1.Text = result.ToString(); 
} 

private void InitializeComboBox(ComboBox comboBox) 
{ 
    for (int index = 0; index < 10; index++) 
    { 
     comboBox.Items.Add(index + 0.5); 
    } 
} 
+0

대단히 감사합니다! –

+0

비록 문제가 생겼습니다. 제 의견으로는 2 개의 콤보 박스가 있습니다. 그 중 하나는 계산에 추가하고 싶지 않지만 어쨌든 거기에 들어가는 것 같습니다! :) –

+0

Where 람다 식을 사용하여 쿼리 필터링을 통해 추가로 두 개의 콤보 상자를 제외 할 수 있습니다. https://gist.github.com/ivayle/7209e5cca4d4856f847d6db9a8fb55a1#file-gistfile1-txt –

관련 문제