WinForm TextBox 自动完成

小灰狼 2012-07-15 11:52:02
强调一下,是WinForm,不是asp.net

设置了 TextBox 的 AutoCompleteMode 为 SuggestAppend,AutoCompleteSource 为 CustomSource,并且为AutoCompleteCustomSource 添加了数据源

但是这个 TextBox 必须输入至少一个字符之后才显示建议的下拉框
我希望在 TextBox 得到焦点时就显示下拉框,应该怎么做?
...全文
245 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
rochael 2012-07-16
  • 打赏
  • 举报
回复
增加一个focus事件就要以了
threenewbee 2012-07-16
  • 打赏
  • 举报
回复
反正我没见到这样的程序,没有输入任何内容就给自动完成提示的。

你可以使用ComboBox,比如类似IE地址栏,既允许自动完成,也允许下拉。
AllenKO被注册 2012-07-16
  • 打赏
  • 举报
回复
可以吗?
小灰狼 2012-07-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

增加一个focus事件就要以了
[/Quote]

当然是增加focus事件,但是在focus事件里怎么做才是关键
sygold 2012-07-16
  • 打赏
  • 举报
回复
有个笨办法,是在wince下用的,下面有写一个listbox,平时隐藏,到上面的text有焦点就显示,失去焦点就隐藏.
monsterff 2012-07-16
  • 打赏
  • 举报
回复
我用的combobox 如果你非要用textbox 也行 ,把combobox 隐藏到textbox后面,如何获取值就不用说了吧
monsterff 2012-07-16
  • 打赏
  • 举报
回复
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);
}
}
}






给点分吧。。。

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧