private void InvalidVariableFormula(NotificationMessage msg) { if (!string.IsNullOrEmpty(msg.Notification)) { FormulaBox.SelectionStart = FormulaBox.Text.IndexOf(msg.Notification); FormulaBox.SelectionLength = msg.Notification.Length; FormulaBox.Focus(); } }
private void FormulaBoxKeyPressedEvent(object sender, KeyEventArgs e) { if (((e.KeyCode == Keys.Enter)) && (DataGrid.SelectedCells.Count == 1)) { //DataGrid.Focus(); try { FormulaBox.Select(0, FormulaBox.Text.Length); { FormulaBox.SelectionColor = Color.Black; } FormulaBox.SelectionLength = 0; ((Cell)DataGrid.SelectedCells[0].Tag).Formulate = FormulaBox.Text; DataGrid.Focus(); } catch (RecursionException ev) { MessageBox.Show("There are one or more circular references where a formula of " + ev.var + " cell refers to it`s own cell either directly or indirectly.\r\nTry to fix your mistakes :)", "Error"); } catch (UnknownWordException ev) { string _newFormula = FormulaBox.Text; ev.position -= ev.word.Length; FormulaBox.Text = _newFormula.Substring(0, ev.position); RichTextBoxExtensions.AppendText(FormulaBox, ev.word, Color.Red); RichTextBoxExtensions.AppendText(FormulaBox, _newFormula.Substring(ev.position + ev.word.Length), Color.Black); MessageBox.Show("Unknown operator or variable " + ev.word + " was found in your formula.\r\nTry to fix your mistakes :)", "Error"); } catch (BadSyntaxException ev) { string _newFormula = FormulaBox.Text; ev.position -= (ev.token.Length - 1); FormulaBox.Text = _newFormula.Substring(0, ev.position); RichTextBoxExtensions.AppendText(FormulaBox, ev.token, Color.Red); RichTextBoxExtensions.AppendText(FormulaBox, _newFormula.Substring(ev.position + ev.token.Length), Color.Black); MessageBox.Show("Bad syntax at position " + ev.position.ToString() + " was found in your formula.\r\nTry to fix your mistakes :)", "Error"); } catch (UnknownSymbolException ev) { string _newFormula = FormulaBox.Text; FormulaBox.Text = _newFormula.Substring(0, ev.position); RichTextBoxExtensions.AppendText(FormulaBox, ev._char.ToString(), Color.Red); RichTextBoxExtensions.AppendText(FormulaBox, _newFormula.Substring(ev.position + 1), Color.Black); MessageBox.Show("Unknown symbol at position " + ev.position.ToString() + " was found in your formula.\r\nTry to fix your mistakes :)", "Error"); } catch (NullDivisionException ev) { MessageBox.Show("Null division was found in your formula.\r\nTry to fix your mistakes :)", "Error"); } catch { MessageBox.Show("I don`t even know what happened. \r\nUrgently call my creator!", "Error"); } RefreshDataGrid(); } }