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; }