2016-10-12 2 views
0

Im пытается получить выбранное значение моих 4-х комбобокс и автоматически добавить их в виде окна. Элементы comboboxes являются десятичными знаками, 0,75, 0,8 и т. Д. Как добавить все значения, выбранные из списков combobox вместе в текстовое поле?Вычислить значение автоматически при выборе десятичного числа в combobox

Я пробовал в течение 5 часов и действительно не могу понять это. FYI im действительно новичок.

Спасибо!

+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 lambda. https://gist.github.com/ivayle/7209e5cca4d4856f847d6db9a8fb55a1#file-gistfile1-txt –

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