В настоящее время я работаю над домашним заданием, где мне нужно настроить программу типа калькулятора.Необходимо прочитать одно или два значения, введенных пользователем (в зависимости от расчета), а затем выполнить вычисление на основе этих значений.
В настоящее время у меня есть
- 2 textBoxes (
tbInput1
и tbInput2
), - 4 радиокнопки,
- одна кнопка (
btnCalc
) - , пробел
label
, в котором будет отображаться результат.
Два из radioButtons (rbtnTrap
и rbtnFak
) отключают первый текстовый блок при проверке;двум другим нужно ввести два значения, и по этой причине активировать оба текстовых поля при проверке.btnCalc
должен включаться, когда значение имеет соответствующее количество текстовых ящиков - соответствующее количество текстовых ящиков зависит от того, какой переключатель выбран.
Проблема заключается в том, что когда я проверяю rbtnTrap
или rbtnFak
(отключение tbInput1
) и введите целое число в tbInput2
, btnCalc
остается отключенным.
Я постараюсь объяснить, что у меня до сих пор:
- В
_TextChanged
событие для tbInput1
, у меня есть точная копия второго if
блока, опубликованного ниже.tbInput1
активен только при проверке rbtnPot
ИЛИ rbtnFib
, поэтому управление выполняется только в этом случае. - В событии
_TextChanged
для tbInput2
у меня есть следующее,поскольку tbInput2
- это , всегда включено, и элемент управления должен работать независимо от того, какая радиокнопка отмечена, хотя элемент управления должен работать по-другому, если я проверяю rbtnTrap
ИЛИ rbtnFak
в отличие от rbtnPot
ИЛИrbtnFib
.
Или я так понимаю.Я, конечно, открыт для предложений и исправлений.
private void tbInput2_TextChanged(object sender, EventArgs e)
{
//For single-field values
if ((rbtnTrap.Checked || rbtnFak.Checked) &&
!string.IsNullOrWhiteSpace(this.tbInput2.Text))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
// For multi-field values
if ((rbtnPot.Checked || rbtnFib.Checked) &&
(!string.IsNullOrWhiteSpace(this.tbInput1.Text)
&& !string.IsNullOrWhiteSpace(this.tbInput2.Text)))
{
btnCalc.Enabled = true;
}
else
{
btnCalc.Enabled = false;
}
}