Редактировать: Подождите, теперь я получил ваш вопрос!
Вот что я бы сделал:
Сначала для каждого ключа составьте их в виде списка строк, поэтому:
private const string mFirst = "#1";
Затем добавьте в словарь:
mDictionary.Add(mFirst, 130); //etc...
Затем, для каждого поля со списком, добавьте в свои строки
comboBox1.Add(mFirst);
comboBox1.Add(mSecond); //etc...
Затем добавьте событие в поле со списком; выбранный индекс изменен:
comboBox1_SelectedIndexChanged(SomeEventStuff I Forget)
Когда значение там изменится, обновите значение для y. Сделайте то же самое для comboBox2 и обновите значение для z. После обновления любого значения просто обновите результат одновременно.
Редактировать 2:
Для математики у меня была бы функция, которая выглядит следующим образом:
float CopperCalc(float inX, float inY, float inA){
if (inY != 0){//avoid the division by zero
return (inX / inY) * inA;
} else {
return 0; //just assume it's zero here.
}//I'm not Jon Skeet, I can't divide by zero
}
Затем вызовите эту функцию в выбранных вами обработанных индексированных обработчиках и используйте ее для обновления вашего текстового поля:
//put your mX, mY, and mA as member values of your class, and then
//they get updated. For instance:
void comboBox1_SelectedIndexChanged(Events){
mX = mDictionary[comboBox1.SelectedItem];
textBox1.Text = CopperCalc(mX, mY, mA).ToString("f1");
}
И поместите одну и ту же функцию для каждого поля со списком, чтобы поле со списком обновлялось, а затем обновлялось текстовое поле.
Этот материал имеет смысл, только если вы хотите попытаться автоматически определить, какой должна быть комбинация проводов:
Это звучит как вариант проблемы с рюкзаком - это правильно? Вам нужно найти какое-то минимальное сочетание медной проводки, чтобы удовлетворить требования к соединениям? Есть ли какое-то минимальное, максимальное или другое ограничение? Почему бы просто не выбросить огромное количество меди, чтобы сделать минимальное требование?
Это очень многословный способ сказать, что мне нужно больше информации, чтобы понять проблему; но, если проблема с ранцем - разумный аналог, то есть решения, но они NP-полны для реализации. То есть они не будут работать «быстро», но если у вас есть только двенадцать проволочных калибров (или что-то еще), вам, вероятно, будет хорошо для скорости.