Beispiel #1
0
        protected override void OnTextChanged(EventArgs e)
        {
            base.OnTextChanged(e);
            if (changeKeyEnter)
            {
                changeKeyEnter = false;
            }
            else
            {
                if (this.Focused)
                {
                    Point cp;
                    GetCaretPos(out cp);
                    var results = SplitText.GetSplitText(Text, new List <string> {
                        " ", Environment.NewLine
                    }, SelectionStart);
                    var resultCursor = results.Where(x => x.IsCursor).FirstOrDefault();

                    List <string> lstTemp = new List <string>();

                    combobox.SetBounds(cp.X, cp.Y, 150, 50);

                    if (resultCursor != null && resultCursor.Word != "")
                    {
                        lstTemp = dictionary.Where(n => n.ToUpper().Contains(resultCursor.Word.ToUpper()))
                                  .Select(r => r)
                                  .OrderBy(x => x.StartsWith(resultCursor.Word) ? 0 : 1)
                                  .ThenBy(x => x.ToUpper().StartsWith(resultCursor.Word.ToUpper()) ? 0 : 1)
                                  .ThenBy(x => x.IndexOf(resultCursor.Word))
                                  .ThenBy(x => x.ToUpper().IndexOf(resultCursor.Word.ToUpper()))
                                  .ThenBy(x => x)
                                  .ToList();
                        //var TempFilteredList = dictionary.Where(n => n.ToUpper().Contains(GetLastString(Text).ToUpper())).Select(r => r);
                    }

                    combobox.DataSource = lstTemp;

                    if (lstTemp.Count != 0)
                    {
                        combobox.DroppedDown = true;
                    }
                    else
                    {
                        combobox.DroppedDown = false;
                    }
                }
            }
        }