示例#1
0
        private void TBsearch_KeyDown(object sender, KeyEventArgs e)
        {
            switch (e.KeyCode)
            {
            case Keys.Down:
                updateSelectedIndex(selectedIndex + 1);
                break;

            case Keys.Up:
                updateSelectedIndex(selectedIndex - 1);
                break;

            case Keys.Enter:
                var code = controls[selectedIndex].Code;
                ParentForm.Hide();
                KeyHandler.sendString(UTF8Helper.hexStringToLetter(code));
                break;

            case Keys.Escape:
                ParentForm.Hide();
                break;

            default:
                break;
            }
        }
示例#2
0
        private void search()
        {
            List <ControlSearch> controls = new List <ControlSearch>();
            string searchStr = TBsearch.Text;

            if (searchStr.Length == 0)
            {
                // don't change order on empty string (and avoid divions by 0 error)
                return;
            }
            foreach (var control in FLPlist.Controls)
            {
                if (control is EditWordRowControl row)
                {
                    double score = row.Names.Split(';').Min(name => Helpers.LevenshteinDistance.Compute(name, searchStr) / (double)searchStr.Length);
                    if (UTF8Helper.hexStringToLetter(row.Code) == searchStr)
                    {
                        score = 0;
                    }
                    controls.Add(new ControlSearch()
                    {
                        score   = score,
                        control = row
                    });
                }
            }

            controls.Sort((a, b) => {
                if (a.score == b.score)
                {
                    return(0);
                }
                else if (a.score > b.score)
                {
                    return(1);
                }
                else
                {
                    return(-1);
                }
            });

            int index = 0;

            foreach (var control in controls)
            {
                FLPlist.Controls.SetChildIndex(control.control, index);
                index++;
            }
        }
        public void updateLetter()
        {
            string code = TBcode.Text;

            try {
                Lletter.Text = UTF8Helper.hexStringToLetter(code);
            } catch (Exception ex) {
                if (code.Length > 0)
                {
                    byte[] bytes = Encoding.UTF8.GetBytes(code.Substring(0, 1));
                    string hex   = BitConverter.ToString(bytes).Replace("-", "");
                    TBcode.Text = hex;
                }
            }
        }