#c# #winforms #combobox
#c# #winforms #выпадающий список
Вопрос:
Я пытаюсь получить выбранное значение из моих 4 выпадающих списков и автоматически сложить их вместе в форме Windows. Элементами выпадающих списков являются десятичные дроби, 0,75, 0,8 и т.д. Как мне добавить все значения, выбранные из выпадающих списков, в текстовое поле?
Я пробовал уже 5 часов и действительно не могу понять это. К вашему сведению, я действительно новичок.
Спасибо!
Комментарии:
1. Используйте
ComboBox.SelectedIndexChanged
событие.2. Еще лучше переключиться на элементы управления NumericUpDown, которые будут возвращать значение, уже преобразованное в число
Ответ №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);
}
}
Комментарии:
1. Однако у меня возникла проблема: в моей форме есть еще 2 выпадающих списка, которые я НЕ хочу добавлять к вычислению, но, похоже, они все равно туда попадают! 🙂
2. Вы можете исключить дополнительные два поля со списком, отфильтровав запрос с помощью лямбда-выражения Where . gist.github.com/ivayle /…