强调一下,是WinForm,不是asp.net设置了 TextBox 的 AutoCompleteMode 为 SuggestAppend,AutoCompleteSource 为 CustomSource,并且为AutoCompleteCustomSource 添加了数据源但是这个 TextBox 必须输入至少一个字符之后才显示建议的下拉框
我希望在 TextBox 得到焦点时就显示下拉框,应该怎么做?

解决方案 »

  1.   

    反正我没见到这样的程序,没有输入任何内容就给自动完成提示的。你可以使用ComboBox,比如类似IE地址栏,既允许自动完成,也允许下拉。
      

  2.   

    有个笨办法,是在wince下用的,下面有写一个listbox,平时隐藏,到上面的text有焦点就显示,失去焦点就隐藏.
      

  3.   


    当然是增加focus事件,但是在focus事件里怎么做才是关键
      

  4.   

      private void comboName_KeyUp(object sender, KeyEventArgs e)
            {
                if (e.KeyCode >= Keys.A && e.KeyCode <= Keys.Z || e.KeyCode == Keys.Back)
                {
                    if (comboName.Text.Length > 0)
                    {
                        string oldstring = comboName.Text;
                        string sql = "select ProId, 商品名 + '     ' + 厂家 + '      ' + 规格 as cc from pro where 简码 like '%" + comboName.Text.Trim() + "%' or 商品名 like '%" + comboName.Text.Trim() + "%'";
                        AccessHelp ah = new AccessHelp();
                        this.comboName.DataSource = ah.select(sql).Tables[0];
                        comboName.DisplayMember = "cc";
                        comboName.ValueMember = "ProId";
                        comboName.DroppedDown = true;
                        comboName.Text = oldstring;
                        comboName.Select(oldstring.Length, 0);
                    }
                }
            }
    给点分吧
      

  5.   

    我用的combobox 如果你非要用textbox 也行 ,把combobox 隐藏到textbox后面,如何获取值就不用说了吧