我的上一个支持拼音检索的TextBox扩展控件,由于有些网友留言和发邮件问如何用,

如:菜鸟AAA等当时想到肯定大家都会用,就没上传示例程序。

原文为:http://www.cnblogs.com/whitewolf/archive/2009/12/03/1615975.html#1717373

既然有人问,那就上传下是下程序。肯定很多人都知道如何用,请越过就是,不要发弁言。

主要只有三个属性暴露出来:

1:MaxItemCout:这是在多个下拉条时,显示多少条可见;

2:SearchMode:检索方式:只提供了SearchMode.Contains 和SearchMode.StartWith包含和以其开始区别;

3:SpellSearchSource:检索的数据源,仅显现的中文等字符;

主要在它上:有几种方式设计:

1:设计时:

代码

2:代码中;
一般的:
//一般的CODE为;
            spellSearchBoxEx1.SpellSearchSource = new string[] { "中国", "中国fgdfs", "中阿收费的肌肤", "男生", "女生" };

3:数据库情况下,本实例用的是随机生成中文模拟数据库情况;
public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

private void Form1_Load(object sender, EventArgs e)
        {
           
            //一般的CODE为;
            spellSearchBoxEx1.SpellSearchSource = new string[] { "中国", "中国fgdfs", "中阿收费的肌肤", "男生", "女生" };

// 连接数据库情况下仅此;
            spellSearchBoxExBySql.SpellSearchSource = GetSpellBoxSource(GetDataTable());
        }

public string[] GetSpellBoxSource(DataTable dt)
        {
            List<string> list = new List<string>();
            foreach (DataRow dr in dt.Rows)
            {
                if (!Convert.IsDBNull(dr["Text"]))
                    list.Add(dr["Text"].ToString());
            }
            return list.ToArray();
        }
        public DataTable GetDataTable()
        {
            //这里是自己的代码连接数据库仅得到要填的列;
            //本方法没连数据库,用随机生成中文模拟获得DatatTable
            // DataTable dt = DB.GetDatatable("sql");
            DataTable dt = new DataTable();
            dt.Columns.Add(new DataColumn("Text", typeof(string)));
            Random rn = new Random();
            for (int i = 0; i < 50; i++)
            {
                string str ="中" +GetRandomChinese(rn.Next(8));
                DataRow dr = dt.NewRow();
                dr["Text"] = str;
                dt.Rows.Add(dr);
            }
            return dt;
        }

#region 以下只是随机生成中文,与本控件使用无关;
        public string GetRandomChinese(int strlength)
        {
            Encoding gb = Encoding.GetEncoding("gb2312");

object[] bytes = this.CreateRegionCode(strlength);

StringBuilder sb = new StringBuilder();

for (int i = 0; i < strlength; i++)
            {
                string temp = gb.GetString((byte[])Convert.ChangeType(bytes[i], typeof(byte[])));
                sb.Append(temp);
            }

return sb.ToString();
        }
        private object[] CreateRegionCode(int strlength)
        {
            //定义一个字符串数组储存汉字编码的组成元素 
            string[] rBase = new String[16] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

Random rnd = new Random();
            object[] bytes = new object[strlength];
            for (int i = 0; i < strlength; i++)
            {
                int r1 = rnd.Next(11, 14);
                string str_r1 = rBase[r1].Trim();
                rnd = new Random(r1 * unchecked((int)DateTime.Now.Ticks) + i);
                int r2;
                if (r1 == 13)
                {
                    r2 = rnd.Next(0, 7);
                }
                else
                {
                    r2 = rnd.Next(0, 16);
                }
                string str_r2 = rBase[r2].Trim();
                rnd = new Random(r2 * unchecked((int)DateTime.Now.Ticks) + i);
                int r3 = rnd.Next(10, 16);
                string str_r3 = rBase[r3].Trim();
                rnd = new Random(r3 * unchecked((int)DateTime.Now.Ticks) + i);
                int r4;
                if (r3 == 10)
                {
                    r4 = rnd.Next(1, 16);
                }
                else if (r3 == 15)
                {
                    r4 = rnd.Next(0, 15);
                }
                else
                {
                    r4 = rnd.Next(0, 16);
                }
                string str_r4 = rBase[r4].Trim();
                byte byte1 = Convert.ToByte(str_r1 + str_r2, 16);
                byte byte2 = Convert.ToByte(str_r3 + str_r4, 16);
                byte[] str_r = new byte[] { byte1, byte2 };
                bytes.SetValue(str_r, i);
            }

return bytes;
        }
        #endregion

}

实例代码和Dll文件下载

转载于:https://www.cnblogs.com/whitewolf/archive/2009/12/08/1619106.html

支持拼音检索的TextBox扩展控件-使用相关推荐

  1. 支持拼音检索的TextBox扩展控件(转)

    转自:http://www.cnblogs.com/whitewolf/archive/2009/12/03/1615975.html 最近因项目中要用,于是就扩展了TextBox实现输入汉字首字母简 ...

  2. 支持拼音检索的TextBox扩展控件

    最近因项目中要用,于是就扩展了TextBox实现输入汉字首字母简单查询.控件扩展代码很简单.但是刚开始,一直没有找到扩展入口,始终无法展现下拉框.先想通过AutoCompleteCustomSourc ...

  3. Bootstrap 表单的扩展控件

    除了基本的控件,作为对 HTML 表单控件的补充,Bootstrap 还为表单额外提供了一些非常实用的扩展控件. 输入框的前置和后置组件,是非常实用的控制控件.利用输入框的前置和后置组件,可以在输入框 ...

  4. ajax控件扩展,22.6 扩展控件

    22.6  扩展控件 ASP.NET AJAX在扩展已有控件方面占有很大的优势,它为创建新的扩展控件提供了一个框架,目前没有扩展控件,但使用ASP.NET AJAX控件工具集可以得到许多扩展控件.本节 ...

  5. (ESC IIS笔记)类型“TextBox”的控件“TextBox1”必须放在具有 runat=server 的窗体标记内

    问题出现 在VisualStudio创建Web窗体并对页面内容进行删改时,出现这样的问题 "类型"TextBox"的控件"TextBox1"必须放在具 ...

  6. 类型“TextBox”的控件“email”必须放在具有 runat=server 的窗体标记内。

    类型"TextBox"的控件"email"必须放在具有   runat=server   的窗体标记内.        说明:   执行当前   Web   请 ...

  7. 用combobox扩展控件(dsCtrlComboBox)做出类似QQ登录界面的效果

    原文地址:http://www.uieasy.cn/blog/?p=513 传统的combobox 在使用方面有很多限制,很难满足我们combobox类型控件的需求.主要表现中combobox内置的l ...

  8. 扩展控件--NumberTextBox

          有些时候我们要限制TextBox的输入 ,比如age  telephone等字段,故我们要在其某些事件里处理,如果那样的话下次再遇到此类情况我们又的重复操作,在此我们对其进行扩展使其只可以 ...

  9. [20081226更新(加了日文版本支持)]一个JavaScript WEB日历控件,支持IE6,FireFox,可支持不同语言版本,目前支持中文简繁,英,日语

    已经在google code上建立了项目,欢迎下载: http://code.google.com/p/kimsoft-jscalendar/downloads/list 如果有bug,欢迎大家到go ...

最新文章

  1. 软件开发环境包含的内容
  2. Activity与Fragment的生命周期详解
  3. 五行塔怎么吃第五个_红毛丹怎么吃 吃红毛丹的五个好处
  4. 2015第26周六《谁动了我的奶酪》书摘
  5. Caffe学习系列(17):模型各层数据和参数可视化
  6. Dubbo-Dependency
  7. php 正则特殊字符转义,php 正则特殊字符转义的方法
  8. [渝粤教育] 西北大学 数据结构 参考 资料
  9. Oracle复习(知识点、练习题、实验)
  10. PP视频如何将默认缓存清晰度设置成超清
  11. 某电子工厂老板感叹创业开厂人生
  12. MacOS的OCR文字识别,节约时间,提高效率
  13. DirectX组件之---DirectShow介绍
  14. 简单的酒店管理系统(纯属练手)
  15. echarts考勤图表
  16. 进击的Objective-C-----------------类目(category),延展(Extension),协议(Protocol),代理(delegate)-委托 时间获取...
  17. IP地址、网关地址、子网掩码地址
  18. 图标图片网址集合(更新中)
  19. 新年快乐|202112-月度总结
  20. * JLink Info: Reset: Halt core after reset via DEMCR.VC_CORERESET.

热门文章

  1. 斯威夫特山地车_斯威夫特枚举
  2. mockito模拟依赖注入_Mockito @InjectMocks –模拟依赖注入
  3. junit 经典示例_JUnit 4,JWebUnit,Arquillian和JSF单元示例教程
  4. 在VS中查看MSI项目的Product Code
  5. Java数组简介:数组是什么?
  6. Java基础:什么是返回对象
  7. Mac 电脑如何卸载 node
  8. 【Latex】数学公式排版
  9. 【廖雪峰官方网站/Java教程】泛型
  10. 程序员面试金典——4.3高度最小的BST