一个combox,里面用了TextChanged事件,具体功能是这样的,比如输入n,出来南京,南宁,也就是拼音检索,有关n开头的都出来,输入s,出来上海之类的,我的代码实现如下:
        private void cmbName_TextChanged(object sender, EventArgs e)
        {
            
            SqlConnection conn;
            SqlDataReader sdr;
            char pun = '%';            SqlCommand cmd;
            string strConnectionString = "server=.;uid=sa;pwd=sa;database=DB";
            conn = new SqlConnection(strConnectionString);
            conn.Open();
            cmd = conn.CreateCommand();
            string strKeyWords = cmbName.Text;
            string strResult = cmd.CommandText = "select AreaName from Area where AreaSpellCHS like '" +strKeyWords + pun + "'";
            sdr = cmd.ExecuteReader();
            while (sdr.Read())
            {
                    cmbName.Items.AddRange(new object[] { sdr["AreaName"] });
            }
            
            sdr.Close();
            //cmbName.Items.Clear();
        }这样已经把功能实现了,现在有两个小问题,第一个是我输入n以后,出来南京,南宁,然后我把n删了,重输入一个s,就出来上海,当时南京和南宁也在下面,就是三个都有了,在输入s,又出来江苏,上海,南京,南宁,我要的效果是如果输入j,就出来江苏,输入n,就出来南京和南宁,就类似于webform上的autopostback要设成true,要刷新一下,我是这么理解的,不能有刚才查过的记录在里面,请大家帮忙.
第二个问题是我输入n以后,要点旁边向下的箭头才能有南京和南宁来,有没有办法一输入n,那个下拉的菜单就自动打开?可能有这个属性吧,我没找到,呵呵,大家帮帮忙,谢谢了!