支持拼音检索的TextBox扩展控件-使用
2009-12-08 09:32
561 查看
我的上一个支持拼音检索的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文件下载
如:菜鸟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文件下载
相关文章推荐
- 支持拼音检索的TextBox扩展控件-使用
- 支持拼音检索的TextBox扩展控件(转)
- 支持拼音检索的TextBox扩展控件
- ComboBox控件扩展(支持拼音简写筛选)
- MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便
- 使用拼音首字母检索的Combox控件
- 支持拼音检索的TextBox扩展控件
- MVC为Html对象建立一个扩展方法,使用自己的控件就像使用TextBox一样方便
- 支持拼音检索的TextBox扩展控件
- TextBox的扩展,支持文件夹和各类文件的拖入,同时可设置过滤文件格式!
- 使用AJAX控件来实现Ajax操作(支持服务器事件)
- 在ASP.NET 2.0中操作数据之四十六:使用SqlDataSource控件检索数据
- [置顶] viewPager+photoView实现图片轮播和手势缩放功能 支持手势缩放的imageView 如何实现相册左右滑动和手势缩放 如何让图片自适应控件大小 photoView如何使用(上)
- 使用HTML实现对汉字拼音的支持
- [转载]C#中,让组合框(ComboBox)支持拼音首字母检索筛选
- dataGridView 使用鼠标单击获得数据写入textbox控件中
- VB6对系统自带的TextBox控件的扩展实现模糊查询的功能
- Android Design Support Library 中控件的使用简单介绍(一)介绍 在这个 Lib 中主要包含了 8 个新的 material design 组件!最低支持 Android
- AjaxControlToolkit 微软出的ajax.net 工具使用教程十六 TextBoxWatermarkExtender(水印) 控件的使用
- ASP.NET Web开发框架之五 设计时支持,代码生成,数据字典 ExtAspNet控件扩展