private void AutoCompleteListBox_OnSelectionChanged(object sender, SelectionChangedEventArgs e) { if (AutoCompleteListBox.SelectedItem == null) { AutoCompleteListBox.SelectedIndex = 0; } else { AutoCompleteListBox.ScrollIntoView(AutoCompleteListBox.SelectedItem); } }
private void ShowAutoCompleteListBox(bool deleting_chars) { // // We only support CustomSource by now // IList source = auto_complete_cb_source == null ? auto_complete_custom_source : (IList)auto_complete_cb_source.Items; bool append = auto_complete_mode == AutoCompleteMode.Append || auto_complete_mode == AutoCompleteMode.SuggestAppend; bool suggest = auto_complete_mode == AutoCompleteMode.Suggest || auto_complete_mode == AutoCompleteMode.SuggestAppend; if (Text.Length == 0) { if (auto_complete_listbox != null) { auto_complete_listbox.HideListBox(false); } return; } if (auto_complete_matches == null) { auto_complete_matches = new List <string> (); } string text = Text; auto_complete_matches.Clear(); for (int i = 0; i < source.Count; i++) { string item_text = auto_complete_cb_source == null ? auto_complete_custom_source [i] : auto_complete_cb_source.GetItemText(auto_complete_cb_source.Items [i]); if (item_text.StartsWith(text, StringComparison.CurrentCultureIgnoreCase)) { auto_complete_matches.Add(item_text); } } auto_complete_matches.Sort(); // Return if we have a single exact match if ((auto_complete_matches.Count == 0) || (auto_complete_matches.Count == 1 && auto_complete_matches [0].Equals(text, StringComparison.CurrentCultureIgnoreCase))) { if (auto_complete_listbox != null && auto_complete_listbox.Visible) { auto_complete_listbox.HideListBox(false); } return; } auto_complete_selected_index = suggest ? -1 : 0; if (suggest) { if (auto_complete_listbox == null) { auto_complete_listbox = new AutoCompleteListBox(this); } // Show or update auto complete listbox contents auto_complete_listbox.Location = PointToScreen(new Point_(0, Height)); auto_complete_listbox.ShowListBox(); } if (append && !deleting_chars) { AppendAutoCompleteMatch(0); } document.MoveCaret(CaretDirection.End); }
private void ShowAutoCompleteListBox (bool deleting_chars) { // // We only support CustomSource by now // IList source = auto_complete_cb_source == null ? auto_complete_custom_source : (IList)auto_complete_cb_source.Items; bool append = auto_complete_mode == AutoCompleteMode.Append || auto_complete_mode == AutoCompleteMode.SuggestAppend; bool suggest = auto_complete_mode == AutoCompleteMode.Suggest || auto_complete_mode == AutoCompleteMode.SuggestAppend; if (Text.Length == 0) { if (auto_complete_listbox != null) auto_complete_listbox.HideListBox (false); return; } if (auto_complete_matches == null) auto_complete_matches = new List<string> (); string text = Text; auto_complete_matches.Clear (); for (int i = 0; i < source.Count; i++) { string item_text = auto_complete_cb_source == null ? auto_complete_custom_source [i] : auto_complete_cb_source.GetItemText (auto_complete_cb_source.Items [i]); if (item_text.StartsWith (text, StringComparison.CurrentCultureIgnoreCase)) auto_complete_matches.Add (item_text); } auto_complete_matches.Sort (); // Return if we have a single exact match if ((auto_complete_matches.Count == 0) || (auto_complete_matches.Count == 1 && auto_complete_matches [0].Equals (text, StringComparison.CurrentCultureIgnoreCase))) { if (auto_complete_listbox != null && auto_complete_listbox.Visible) auto_complete_listbox.HideListBox (false); return; } auto_complete_selected_index = suggest ? -1 : 0; if (suggest) { if (auto_complete_listbox == null) auto_complete_listbox = new AutoCompleteListBox (this); // Show or update auto complete listbox contents auto_complete_listbox.Location = PointToScreen (new Point (0, Height)); auto_complete_listbox.ShowListBox (); } if (append && !deleting_chars) AppendAutoCompleteMatch (0); document.MoveCaret (CaretDirection.End); }