根据拼音首字母进行过滤的combobox

keywords: 拼音 首字母 过滤

在combobox中输入汉字拼音的首字母时,下面列出对应的可选项,就像下面这样

1。 首先在数据库中需要设计一个表,专门用来存放药物及对应的拼音首字母,这样当用户输入拼音字母后就可以到表中查找匹配的药物,然后再显示

2。 下面的委托方法负责将从数据库获得的查询结果集重新邦定到combobox并自动弹出下拉列表。下面的代码需要注意这几行

// set the cursor at the end of the text
                ctrl.Focus();
                ctrl.Select(oldText.Length, oldText.Length);

其功能就是保证用户能够连续输入字母,并使光标始终位于combobox最后,如果不加这两行,光标就会跑到第一个字母前面

[c-sharp] view plain copy

  1. public delegate void ReBindDataSource(ComboBox ctrl, DataSet ds);
  2. public static void BindDataSource(ComboBox ctrl, DataSet ds)
  3. {
  4. try
  5. {
  6. ctrl.BeginUpdate();
  7. // make sure change it to false, or there will be exception if the droppedDownList is empty
  8. ctrl.DroppedDown = false;
  9. string oldText = ctrl.Text;
  10. ctrl.DataSource = ds.Tables[0];
  11. ctrl.DisplayMember = ds.Tables[0].Columns[0].ColumnName;
  12. // set the text, so user can input continuely
  13. ctrl.Text = oldText;
  14. // set the cursor at the end of the text
  15. ctrl.Focus();
  16. ctrl.Select(oldText.Length, oldText.Length);
  17. // do not drop down if it is empty, or there will be exception
  18. if (ctrl.Items.Count > 0)
  19. {
  20. ctrl.DroppedDown = true;
  21. }
  22. ctrl.Cursor = Cursors.Default;
  23. }
  24. catch (Exception ex)
  25. {
  26. //statusLabel.Text = ex.Message;
  27. }
  28. finally
  29. {
  30. ctrl.EndUpdate();
  31. }
  32. }

3。 下面的方法

[c-sharp] view plain copy

  1. private void cbM1_TextUpdate(object sender, EventArgs e)
  2. {
  3. // 获得输入的拼音
  4. string abbr = cbM1.Text.Trim();
  5. // 从数据库中查寻符合条件的药物集合
  6. DataSet ds = mPresenter.GetMedicineNamesByAbbr(abbr);
  7. // 重新邦定
  8. cbM1.BeginInvoke(new ReBindDataSource(BindDataSource), cbM1, ds);
  9. }

0
时间: 2025-01-17 07:45:35

根据拼音首字母进行过滤的combobox的相关文章

iOS拼音搜索,拼音首字母搜索

扩展了一下 搜索框,能够实现拼音和首字母模糊搜索 基本搜索 [上一篇文章 ](https://www.cnblogs.com/wjw-blog/p/10724043.html iOS8之后搜索框的常规实例) #import "NSString+utility.h" @interface WJWPinyinSearchViewController ()<UISearchResultsUpdating,UITableViewDelegate,UITableViewDataSource

城市列表-根据拼音首字母排序

今天我们就简单的实现一下城市的排序 读取我们城市的信息并通过listview展示 首先看一下我们的布局文件 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layo

php 中文转拼音首字母问题

<?php /* 中文汉字转拼音首字母的PHP简易实现方法. 要求: 只能是GB2312码表里面中文字符 转换得到字符串对应的拼音首字母大写. 用法: echo zh2py::conv('Chinese 中华人民共和国');//Chinese ZHRMGHG 或 $py = new zh2py; echo $py->conv('Chinese 中华人民共和国');//Chinese ZHRMGHG */ class zh2py { //根据汉字区位表 //我们可以看到从16-55区之间是按拼音

JS获取中文拼音首字母,并通过拼音首字母高速查找页面内的中文内容

实现效果: 图一: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGVzdGNzX2Ru/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" /> 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字.所以alert对话框中显示的是多种读音的组合. 怎样实现? 怎样实现通过拼音首字母高速查找页面内的中文内容呢? 过程原

JS获取中文拼音首字母,并通过拼音首字母快速查找页面内的中文内容

实现效果: 图一: 图二: 此例中输入的中文字符串"万万保重",有三个字是多音字,所以alert对话框中显示的是多种读音的组合: 如何实现? 如何实现通过拼音首字母快速查找页面内的中文内容呢? 过程原理是这样的:例如要对一些人名进行快速查找,当页面加载完成后,对所有人名建立一个索引,生成拼音首字母与姓名的对应关系:然后监听键盘事件,当用户按下键盘时,根据键值得到按下的是哪个字母,然后遍历索引中是否存在相同的拼音首字母: 这里还实现了根据字母组合来查找的功能,原理是这样的:当用户按键时,

java获取汉字拼音首字母 --转载

在项目中要更能根据某些查询条件(比如姓名)的首字母作为条件进行查询,比如查一个叫"李晓明"的人,可以输入'lxm'.写了一个工具类如下: import java.io.UnsupportedEncodingException; /** * 取得给定汉字串的首字母串,即声母串 * Title: ChineseCharToEn * @date 2004-02-19 注:只支持GB2312字符集中的汉字 */ public final class ChineseCharToEn { priv

C# 获取汉字拼音首字母

最近悟出来一个道理,在这儿分享给大家:学历代表你的过去,能力代表你的现在,学习代表你的将来. 十年河东十年河西,莫欺少年穷 学无止境,精益求精   本节探讨C#获取汉字拼音首字母的方法: 代码类东西,直接上代码: /// <summary> /// 在指定的字符串列表CnStr中检索符合拼音索引字符串 /// </summary> /// <param name="CnStr">汉字字符串</param> /// <returns&

通过pinyin4j将汉字转换为全拼 和 拼音首字母

/** * 汉字转换为拼音 包含多音字,包含生母zh,ch,sh的 */ public void toPinYinAll(){ String initials = "zh,ch,sh"; //返回汉语拼音的全拼 List<String> result = new ArrayList<String>(); //返回汉语拼音的单拼 List<String> firstResult = new ArrayList<String>(); resu

取汉字拼音首字母的方法

近期在做一个按拼音首字母排序的ListView须要取汉字拼音首字母,Deomo下载地址:http://download.csdn.net/detail/u014649598/8494777,做了例如以下的方法: 代码例如以下: package com.android.pinyin; import java.io.UnsupportedEncodingException; import android.app.Activity; import android.os.Bundle; import a