internal virtual void OnSelecting()
{
if (selectedItemIndex < 0 || selectedItemIndex >= visibleItems.Count)
{
return;
}
tb.TextSource.Manager.BeginAutoUndoCommands();
try
{
AutocompleteItem item = visibleItems[selectedItemIndex];
SelectingEventArgs args = new SelectingEventArgs()
{
Item = item,
SelectedIndex = selectedItemIndex
};
Menu.OnSelecting(args);
if (args.Cancel)
{
selectedItemIndex = args.SelectedIndex;
DoSelectedVisible();
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();
}
}