Ejemplo n.º 1
0
 private void InvalidVariableFormula(NotificationMessage msg)
 {
     if (!string.IsNullOrEmpty(msg.Notification))
     {
         FormulaBox.SelectionStart  = FormulaBox.Text.IndexOf(msg.Notification);
         FormulaBox.SelectionLength = msg.Notification.Length;
         FormulaBox.Focus();
     }
 }
Ejemplo n.º 2
0
        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();
            }
        }