Ejemplo n.º 1
0
        void RichTextBox2SelectionChanged(object sender, EventArgs e)
        {
            GetSelectionRowCol(this.richTextBox2, this.richTextBox2.SelectionStart);
            rowcolCtrl.Text = "Ln " + (ROW + 1).ToString() + " col " + (COL + 1).ToString();

            if ((!selChangedProgr) && (this.richTextBox2.SelectionLength == 0))
            {
                segmCoord rez;
                rez = GetSelectionRowCol(this.richTextBox2, this.richTextBox2.SelectionStart);
                int oldSelStart = this.richTextBox2.SelectionStart;

                if (ROW >= this.richTextBox2.Lines.Length)
                {
                    return;
                }
                ;
                segmCoord substrToUpdate;
                substrToUpdate = QueryParser.GetSubstrSegmByCharNum(this.richTextBox2.Lines[ROW], COL);

                string parseSubstr = "";
                if ((substrToUpdate.fin == 0) && (substrToUpdate.start == 0))
                {
                    parseSubstr = this.richTextBox2.Lines[ROW];
                    parseSubstr = (string.IsNullOrEmpty(parseSubstr.Trim())) ? "###" : parseSubstr;
                }
                char[] abr = { '(', ')' };
                parseSubstr = (string.IsNullOrEmpty(parseSubstr.Trim())) ? this.richTextBox2.Lines[ROW].Substring(substrToUpdate.start, (substrToUpdate.fin - substrToUpdate.start + 1)) : parseSubstr.Trim();
                parseSubstr = (QueryParser.EnumCharOccurrence(parseSubstr, abr) > 1) ? "" : parseSubstr;
                if ((parseSubstr.EndsWith(")")) || (parseSubstr.StartsWith("(")) || (parseSubstr.StartsWith(")")) || (parseSubstr.Contains("(")))
                {
                    if (!brUnmarked)
                    {
                        UnmarkBr();
                    }

                    brUnmarked        = false;              // draving new, so mark is present
                    pevOpenBr.Current = oldSelStart - 1;

                    #region coloring

                    selChangedProgr = true;
                    this.richTextBox2.SelectionStart = oldSelStart - 1;
                    selChangedProgr = true;
                    this.richTextBox2.SelectionLength    = 1;
                    this.richTextBox2.SelectionBackColor = Color.Orange;
                    selChangedProgr = true;
                    this.richTextBox2.SelectionLength = 0;
                    selChangedProgr = true;
                    this.richTextBox2.SelectionStart = oldSelStart;

//					selChangedProgr = true;
//					this.richTextBox2.SelectionLength = 0;

                    int enclose = GetBrPairPos(this.richTextBox2, oldSelStart, parseSubstr);
                    prevClosBr.Current = enclose - 1;
                    if (enclose >= 0)
                    {
                        selChangedProgr = true;
                        this.richTextBox2.SelectionStart = enclose - 1;
                        selChangedProgr = true;
                        this.richTextBox2.SelectionLength    = 1;
                        this.richTextBox2.SelectionBackColor = Color.Orange;
                        selChangedProgr = true;
                        this.richTextBox2.SelectionLength = 0;
                        selChangedProgr = true;
                        this.richTextBox2.SelectionStart = oldSelStart;
                    }
                    else
                    {
                        MessageBox.Show(" Enclosing bracket not found ! \n Error raise when parse such text");
                    }

                    #endregion
                }
            }
            selChangedProgr = false;
        }