C#: Учебное задание. Конвертер температур Кельвин - Цельсий - Фаренгейт



Как синхронизировать три поля ввода, так чтоб в одном был ввод, а в других отображался результат
1. Создаем три поля ввода типа
InputDigitControl Поля надо назвать соответственно idcC, idcK и idcF для значений в цельсиях, кельвинах и фаренгейтах.2. Создаем три переменных в коде формы, они будут флагами, показывющими в каком поле происходит ввод:
bool enC = false; bool enK = false; bool enF = false;3. Для всех полей прописываем общее событие типа
Enter idc_Enter 4. В обработчике события захватываем текущий контрол в отдельную переменную:
InputDigitControl idc = (InputDigitControl)sender;5. Вытаскиваем последний символ в имени контрола:
string fldID = idc.Name.Substring(3, 1);6. Организуем
switch, устанавливающий флагиswitch (fldID)
{
case "C":
{
enC = true;
enK = false;
enF = false;
}; break;
case "K":
{
enC = false;
enK = true;
enF = false;
}; break;
case "F":
{
enC = false;
enK = false;
enF = true;
}; break;
}Копия функции целиком на PasteBin
7. Событие типа
Changed тоже назначаем одно для всех контролов.8 Внутри обработчика события анализируем флаги, производим расчеты и выводим результаты.
Копия функции целиком на PasteBin
С помощью моего компонента InputDigitControl
C2K:
K = C + 273.15C2F:
F = C * 9.0 / 5.0 + 32.0K2C:
C = K - 273.15K2F:
F = (K - 273.15) * 9.0 / 5.0 + 32.0F2C:
C = (F - 32.0) * 5.0 / 9.0F2K:
K = (F - 32.0) * 5.0 / 9.0 + 273.15На GitHub
На GitHub
Это репост с сайта http://tolik-punkoff.com
Оригинал: http://tolik-punkoff.com/2023/12/10/c-uc