//========================================================================================= /// <summary>Ищет единственный элемент по заданной строке. Если их 0 или больше 1, возвращает null.</summary> int? FindAloneItemByKey(CompletionVariantList items, string key) { // Количество элементов с вхождением заданной строки int iFoundCount = 0; // Индекс последнего совпавшего элемента int iItemId = 0; for (int i = 0; i < items.Count; i++) if (items[i].Text.StartsWith(key, true, null)) { iFoundCount++; iItemId = i; } if (iFoundCount != 1) return null; return iItemId; }
//================================================================================== /// <summary>Загружает варианты в ListView.</summary> internal void LoadVariants(CompletionVariantList items) { listItems.Items.Clear(); if (items == null) return; foreach (CompletionVariant item in items) { ListViewItem lvItem = new ListViewItem(item.Text, item.ImageIndex) { ToolTipText = item.Tooltip }; listItems.Items.Add(lvItem); } this.listItems.SelectItem(0); }
//========================================================================================= /// <summary>Отображает список всех вариантов.</summary> void ShowVariants(TextPoint tokenStart, Point point, CompletionVariantList items) { if (items == null || items.Count == 0) { if (this.IsVariantsVisible) this.HideVariants(); return; } this.TokenStart = tokenStart; this.FormWithList.LoadVariants(items); this.ShowVariants(point); }