怎么在WinForm中怎么实现与ASP.NET中AJAX的AutoCompleteExtender控件相同的效果

沙伽more 2010-12-19 09:24:02
就是想在WINFORM中实现与百度中的搜索框一样的功能;在ASP.NET中到是很好做,可是在这个里面我就不知道怎么做了,请各位大佬们指点一下啊(当然要详细一点儿哦)
...全文
148 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
WIKESOFT 2011-10-31
  • 打赏
  • 举报
回复
我经常会看到sp1234在里面灌水,说的都是些废话。。我不晓得sp1234是个水货还是我们大家是水货。。
操他妈
沙伽more 2010-12-20
  • 打赏
  • 举报
回复
那位大侠在进来看看呗
沙伽more 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 sp1234 的回复:]

引用 3 楼 wang136206441 的回复:
那请问一下这个功能在WINFORM中要怎么才能实现嘛


处理keydown事件,然后根据combox的值,从数据库中查询前20条记录(select top 20....)然后重新设置到DataSource属性。

唉,“每条语句”这样来说?
[/Quote]
那像这么做了,相当于是自动提示是有了,那我如果我想把提示出一的数据,我选择一条点击后,让它就出现在我的输入文本框里面,这样行不行呢??
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wang136206441 的回复:]
那请问一下这个功能在WINFORM中要怎么才能实现嘛
[/Quote]

处理keydown事件,然后根据combox的值,从数据库中查询前20条记录(select top 20....)然后重新设置到DataSource属性。

唉,“每条语句”这样来说?
  • 打赏
  • 举报
回复
注意,在IE浏览器的select中已经默认就提供了所谓的AutoCompleMode。

而AutoCompleteExtender反而要禁用浏览器的AutoCompleteMode,然后用新的AutoComplete方式来实现。它其实是每一次都仅仅显示十几行数据(而不是一下子绑定上百行),然后当用户键入新的值时总是调用后台BLL方法来返回新的查询结果。

对于winform,也是一样的,你要自己处理调用BLL方法查询后台数据(往往是从远程服务上查询),并且仅仅下拉显示十几条记录,而不需要显示太多的记录。
沙伽more 2010-12-19
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 sp1234 的回复:]

引用楼主 wang136206441 的回复:
就是想在WINFORM中实现与百度中的搜索框一样的功能;在ASP.NET中到是很好做,可是在这个里面我就不知道怎么做了,请各位大佬们指点一下啊(当然要详细一点儿哦)


在winform中根本不值得微软提供一个什么autocomplete控件,你可以处理keydown事件啊。

在winform中因为它已经没有什么技术含量,winfor……
[/Quote]
那请问一下这个功能在WINFORM中要怎么才能实现嘛
  • 打赏
  • 举报
回复
[Quote=引用楼主 wang136206441 的回复:]
就是想在WINFORM中实现与百度中的搜索框一样的功能;在ASP.NET中到是很好做,可是在这个里面我就不知道怎么做了,请各位大佬们指点一下啊(当然要详细一点儿哦)
[/Quote]

在winform中根本不值得微软提供一个什么autocomplete控件,你可以处理keydown事件啊。

在winform中因为它已经没有什么技术含量,winform编程本来就非常非常简单方便,人家开发编程控件都是提供更复杂的功能的,想不到这种东西还要找控件。
wuyq11 2010-12-19
  • 打赏
  • 举报
回复
autocomplete
AutoCompleteStringCollection AutoComp =;
txtbox1.AutoCompleteMode = AutoCompleteMode.Suggest;
txtbox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
AutoComp.Add("1");
AutoComp.Add("2");
AutoComp.Add("3");
txtbox1.AutoCompleteCustomSource = AutoComp;

沙伽more 2010-12-19
  • 打赏
  • 举报
回复
现在的一些基本功能是出来了,可是遇到了一个问题,我的后台代码是这么写的:
List<string> news = new List<string>();
public Form2()
{
InitializeComponent();
}

private void txtBind_TextChanged(object sender, EventArgs e)
{
string sqlSelect = "select name from kf_table where name like '%" + txtBind.Text + "%'";
SqlConnection conn = new SqlConnection(conStr);
SqlCommand cmd = new SqlCommand(sqlSelect, conn);
conn.Open();
SqlDataReader dr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
while(dr.Read())
{
news.Add(dr["name"].ToString());
}
conn.Close();
txtBind.AutoCompleteCustomSource.AddRange(news.ToArray());
}

前面输入文本框里面的属性我都是设置好了的,现在的问题是:本来会自动提示出来几条的;可是它就是只提示出来了第一条啊,各位大哥们,这个是怎么回事啊,我看了好多遍代码我觉得没有问题啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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