Прикольная ситуация :).
Как вариант - приделай к текстбоксу флажок типа
bool is_manual_changed;
Который устанавливай в значение true после изменения вручную.
Сигнал об изменении значения в других тексбоксах должен обрабатываться примерно так:
if (is_manual_changed == true) {
is_manual_changed = false;
}
else {
// твой код расчета по формуле
}
Т.е. если ты ввел значения вручную - то они не изменятся при обработке первого события изменения значений в двух других текстбоксах. А вот при следующих событиях от них - уже изменится.
Вообще это выглядит как костыль, но... работать скорее всего будет. Опять же, тут при изменении значений в тестбоксах Б и С должно приходить ОДНО событие в текстбокс А. Если у тебя приходит два события - ставь вместо bool счетчик и вычитай единичку при каждом событии :).
Кстати, такие проблемы без костылей вряд-ли нормально решаются, т.к. скорее всего "что-то не так" с твоим интерфейсом.
И еще, ты не достаточно прописал проблему. Например, если у тебя есть кнопка по нажатию на которую происходит расчет - то все значительно проще. Если же значения меняются на лету - то подойдет вариант описанный выше, но можно и по-другому - например не делать расчет если на текстбоксе установлен фокус. Это самый простой вариант, но поможет ли это?
Я изменил текстбокс А, из-за этого поменялось значение в Б и С. Из за того, что поменялось значение в Б - еще раз изменилось значение в С, и еще раз... - Будет такая рекурсия или нет? - если будет - то у тебя неправильно спроектирован интерфейс. Но тогда - ты не правильно сформулировал проблему (ты пишешь что беда в том, что изменяется значение том текстбоксе, который мы уже редактируем - как решить это я предложил, а вот остальное...)