/// <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; } }
/// <summary> /// Clears all displayed hints /// </summary> public void Clear() { items.Clear(); if (tb.Controls.Count != 0) { tb.Controls.Clear(); 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; } }
/// <summary> /// Add and shows the hint /// </summary> /// <param name="hint"></param> public void Add(Hint hint) { items.Add(hint); if (hint.Inline /* || hint.Range.Start.iLine >= tb.LinesCount - 1*/) { var li = tb.LineInfos[hint.Range.Start.iLine]; hint.TopPadding = li.bottomPadding; li.bottomPadding += hint.HostPanel.Height; tb.LineInfos[hint.Range.Start.iLine] = li; tb.NeedRecalc(true); } LayoutHint(hint); tb.OnVisibleRangeChanged(); hint.HostPanel.Parent = tb; tb.Select(); tb.ActiveControl = null; tb.Invalidate(); }