zoukankan      html  css  js  c++  java
  • c# 自定义控件之 ComboBox

    winform 自带的 combobox 无法支持根据输入文本匹配列表中的项目,需要使用自定义控件。

       public class MyCombobox : ComboBox
        {
            //初始化数据项
            private List<string> originalList = new List<string>();
            public MyCombobox()
            {
                this.TextUpdate += new EventHandler(CmbTextUpdate);
            }
            /// <summary>
            /// 初始化控件的数据
            /// </summary>
            /// <param name="list">数据集合</param>
            public void Init(List<string> list)
            {
                this.originalList = new List<string>();
                foreach (string str in list)
                {
                    this.originalList.Add(str);
                }
                this.Items.Clear();
                this.Items.AddRange(this.originalList.ToArray());
            }
    
            private void CmbTextUpdate(object sender, EventArgs e)
            {
                this.Items.Clear();
                List<string> list = new List<string>();
                list.Add("");
                foreach (var item in originalList)
                {
                    if (item.Contains(this.Text))
                    {
                        list.Add(item);
                    }
                }
                this.Items.AddRange(list.ToArray());
                //设置光标位置,否则光标位置始终保持在第一列,造成输入关键词的倒序排列
                this.SelectionStart = this.Text.Length;
                //保持鼠标指针原来状态,有时候鼠标指针会被下拉框覆盖,所以要进行一次设置。
                Cursor = Cursors.Default;
                this.DroppedDown = true;
            }
        }
  • 相关阅读:
    Android WebView使用
    Android
    Instant Buy Android API Tutorial
    cocos2dx 手势识别
    cocos2d-x 判断两条直线是否相交
    golang 环境bash 以及shell
    技术描述
    golang web开发获取get、post、cookie参数
    Linux curl 模拟form表单提交信息和文件
    Golang HTTP文件上传
  • 原文地址:https://www.cnblogs.com/aitong/p/11052054.html
Copyright © 2011-2022 走看看