/// <summary> /// Clears all displayed hints /// </summary> public void Clear() { items.Clear(); if (tb.Controls.Count != 0) { var toDelete = new List <Control>(); foreach (Control item in tb.Controls) { if (item is UnfocusablePanel) { toDelete.Add(item); } } foreach (var item in toDelete) { tb.Controls.Remove(item); } for (int i = 0; i < tb.LineInfos.Count; i++) { var li = tb.LineInfos[i]; li.bottomPadding = 0; tb.LineInfos[i] = li; } tb.NeedRecalc(); tb.Invalidate(); tb.Select(); tb.ActiveControl = null; } }
public override void Add(Bookmark bookmark) { foreach (var bm in items) { if (bm.LineIndex == bookmark.LineIndex) { return; } } items.Add(bookmark); counter++; tb.Invalidate(); }
public bool Find(string pattern) { RegexOptions opt = cbMatchCase.Checked ? RegexOptions.None : RegexOptions.IgnoreCase; if (!cbRegex.Checked) { pattern = Regex.Escape(pattern); } if (cbWholeWord.Checked) { pattern = "\\b" + pattern + "\\b"; } // Range range = tb.Selection.Clone(); range.Normalize(); // if (firstSearch) { startPlace = range.Start; firstSearch = false; } // range.Start = range.End; if (range.Start >= startPlace) { range.End = new Place(tb.GetLineLength(tb.LinesCount - 1), tb.LinesCount - 1); } else { range.End = startPlace; } // foreach (var r in range.GetRangesByLines(pattern, opt)) { tb.Selection.Start = r.Start; tb.Selection.End = r.End; tb.DoSelectionVisible(); tb.Invalidate(); return(true); } if (range.Start >= startPlace && startPlace > Place.Empty) { tb.Selection.Start = new Place(0, 0); return(Find(pattern)); } return(false); }
public virtual void FindNext(string pattern) { try { RegexOptions opt = cbMatchCase.Checked ? RegexOptions.None : RegexOptions.IgnoreCase; if (!cbRegex.Checked) { pattern = Regex.Escape(pattern); } if (cbWholeWord.Checked) { pattern = "\\b" + pattern + "\\b"; } // Range range = tb.Selection.Clone(); range.Normalize(); // if (firstSearch) { startPlace = range.Start; firstSearch = false; } // range.Start = range.End; if (range.Start >= startPlace) { range.End = new Place(tb.GetLineLength(tb.LinesCount - 1), tb.LinesCount - 1); } else { range.End = startPlace; } // foreach (var r in range.GetRangesByLines(pattern, opt)) { tb.Selection = r; tb.DoSelectionVisible(); tb.Invalidate(); return; } // if (range.Start >= startPlace && startPlace > Place.Empty) { tb.Selection.Start = new Place(0, 0); FindNext(pattern); return; } MessageBox.Show("Not found"); } catch (Exception ex) { MessageBox.Show(ex.Message); } }