我把combobox和textbox组合使用,当在textbox中输入的时候,combobox会显示出相应的选项让用户选择。但是发现光标在combobox中不能上下移动选择,下面是我的代码
 private void textBox_KeyDown(object sender, KeyEventArgs e)
{
 if (e.KeyCode == Keys.Enter)
 {
    comboBoxEx1.Select();
 }
 else
 {
    comboBoxEx1.Capture = true;
    comboBoxEx1.DataSource = null;
    comboBoxEx1.Items.Clear();
    
    绑定数据数据库,获得数据
    comboBoxEx1.DisplayMember = "CarrierName";
    comboBoxEx1.ValueMember = "CarrierID";
    comboBoxEx1.MaxDropDownItems = 8;
    comboBoxEx1.DroppedDown = true;
  
 }}
        private void comboBoxEx1_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                if (comboBoxEx1.Text != "")
                {
                    textBox.Text = comboBoxEx1.Text;
                    textBox.Tag = comboBoxEx1.SelectedValue;
                }
                comboBoxEx1.DroppedDown = false;
                                
            }
           
        }请问code有什么问题?
谢谢!

解决方案 »

  1.   

    感觉没必要做那么麻烦,ComboBox自带的有自动完成功能,所以:
    string[] arrs={"aabb","aaabb","aabbc"};
                comboBox1.AutoCompleteCustomSource.AddRange(arrs);
                comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;
                comboBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
    试试这样做吧
      

  2.   


    不但ComboBox 有,TextBox也有。
      

  3.   

    comboBox_search.DataSource = table_search_keyword;//绑定datatable
    comboBox_search.DisplayMember = "keyword";//显示字段
    另外ValueMember属性还可以帮定value~//value绑定的字段
      

  4.   

    百度原来是在本地记录输入的词的,然后再次使用的时候,用你以前输入的来提醒。
    我记得在提醒的下拉列表里面鼠标放在那个词上面,按下"del"键,就会删除掉这个词,以后就不提醒这个词了。在combo里面能不能实现这个event阿。就是说在dropdown的时候按del键,触发一个操作。
      

  5.   

    我现在用textbox做,但是这段code应该放在哪里呢,放在keydown的evnet里面?还是其他什么event?
      

  6.   

    还有一个问题,是关于中文的。
    加入说在textbox里面输入的是字母,但是希望他给出的下拉框里面都是汉字信息,该如何实现呢?比如说你输入bj
    下拉框里面有“北京”可以选择