private void processingExeption(string message) { buttonLock(); textBox_Enter.Text = message; textBox_Enter.Tag = false; enterOperator = null; executableOperator = new KeyVal <bool, MyOperator>(false, enterOperator); }
// ввод цифровых клавиш private void buttDigit_Click(object sender, EventArgs e) { previousOperatorChecks(sender, e); // проверка на предшествующий оператор (если '=', то обнуление регистров) if ((bool)textBox_Enter.Tag == false) // проверяем, был ли введён первый символ { executableOperator = new KeyVal <bool, MyOperator>(false, enterOperator); // добавляем операцию в очередь и помечаем, что она еще не произведена textBox_Enter.Text = ((Button)sender).Text; textBox_Enter.Tag = ((Button)sender).Text != "0" ? true : false; // помечаем, что первый символ введён } else if (textBox_Enter.Text.Length < 16) { textBox_Enter.Text += ((Button)sender).Text; } buttonUnlocking(); }
private void Form1_Load(object sender, EventArgs e) { enterOperator = null; // показываем, что метод оператора не выбран executableOperator = new KeyVal <bool, MyOperator>(false, enterOperator); // начальная инициализация пары значений, в которой хранятся делигат выполняемого метода и информация о его выполнении textBox_Enter.Text = "0"; textBox_Enter.Tag = false; // показываем, что ввод цифр еще не производился // инициализация поля Tag кнопок арифметических бинарных операций объектами делигата хранящими соответствующие методы butt_sum.Tag = new MyOperator(sum); butt_sub.Tag = new MyOperator(substaction); butt_multi.Tag = new MyOperator(multiplication); butt_div.Tag = new MyOperator(division); butt_MR.Enabled = false; butt_MC.Enabled = false; activateButton = true; activateButtonVC_MR = false; }
// действие на нажатие '=' private void butt_Equally_Click() { try { executableOperator = new KeyVal <bool, MyOperator>(false, enterOperator); // добавляем операцию в очередь и помечаем, что она еще не произведена if ((bool)textBox_Enter.Tag == true || textBox_Enter.Text == "0") // проверяем, был ли введён первый символ { registrEnter = Convert.ToDouble(textBox_Enter.Text); // записываем число в регистр } clickButtEqually = true; arithmeticProcessing(); textBox_Calculating.Text = ""; textBuff = registrRes.ToString() + " "; buttonUnlocking(); } catch (MyException ex) { throw ex; } catch (Exception ex) { throw ex; } }