internal virtual void OnSelecting() { if (FocussedItemIndex < 0 || FocussedItemIndex >= visibleItems.Count) { return; } tb.TextSource.Manager.BeginAutoUndoCommands(); try { AutoCompleteItem item = FocussedItem; SelectingEventArgs args = new SelectingEventArgs() { Item = item, SelectedIndex = FocussedItemIndex }; Menu.OnSelecting(args); if (args.Cancel) { FocussedItemIndex = args.SelectedIndex; Invalidate(); return; } if (!args.Handled) { var fragment = Menu.Fragment; DoAutoComplete(item, fragment); } Menu.Close(); // SelectedEventArgs args2 = new SelectedEventArgs() { Item = item, Tb = Menu.Fragment.tb }; item.OnSelected(Menu, args2); Menu.OnSelected(args2); } finally { tb.TextSource.Manager.EndAutoUndoCommands(); } }
private void SetToolTip(AutoCompleteItem AutoCompleteItem) { var title = AutoCompleteItem.ToolTipTitle; var text = AutoCompleteItem.ToolTipText; if (string.IsNullOrEmpty(title)) { toolTip.ToolTipTitle = null; toolTip.SetToolTip(this, null); return; } if (this.Parent != null) { IWin32Window window = this.Parent ?? this; Point location; if ((this.PointToScreen(this.Location).X + MaxToolTipSize.Width + 105) < Screen.FromControl(this.Parent).WorkingArea.Right) { location = new Point(Right + 5, 0); } else { location = new Point(Left - 105 - MaximumSize.Width, 0); } if (string.IsNullOrEmpty(text)) { toolTip.ToolTipTitle = null; toolTip.Show(title, window, location.X, location.Y, ToolTipDuration); } else { toolTip.ToolTipTitle = title; toolTip.Show(text, window, location.X, location.Y, ToolTipDuration); } } }