c# 输入一部分就显示全部

mister55 2009-06-15 02:46:53
c# 咋样实现向Google那样,你输入一部分下边就列出相关的信息
...全文
245 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
flurrying 2009-06-15
  • 打赏
  • 举报
回复
帮 顶
lgqiu2008 2009-06-15
  • 打赏
  • 举报
回复
winform的combo有这个功能。
mister55 2009-06-15
  • 打赏
  • 举报
回复
这种不太好使啊
nwgogogo 2009-06-15
  • 打赏
  • 举报
回复
14楼正解
mister55 2009-06-15
  • 打赏
  • 举报
回复
AutoCompleteMode 和AutoCompleteSource 这两个属性都设置成啥?
才子佳人丶 2009-06-15
  • 打赏
  • 举报
回复
忘了,先得设置以下的属性



textBox1.AutoCompleteMode = AutoCompleteMode.SuggestAppend;
textBox1.AutoCompleteSource = AutoCompleteSource.CustomSource;
才子佳人丶 2009-06-15
  • 打赏
  • 举报
回复
上面是我以前回复另外一个朋友的。
你可以试下。
才子佳人丶 2009-06-15
  • 打赏
  • 举报
回复
在窗口的load事件(private void ReportForm_Load(object sender, EventArgs e))中进行列表添加

下面是我做的一个,按照2楼的设置AutoCompleteMode 和AutoCompleteSource 两个属性,不用其他的事件操作,textbox会自动完成字符串匹配筛选的:
private void ReportForm_Load(object sender, EventArgs e)
{
//建立数据库连接
SqlConnection conn = new SqlConnection("Data Source=LUOGUOQIANG;Initial Catalog=SMSDB;User ID=sa;Password=sa");
conn.Open();
//适配器
SqlDataAdapter adapter = new SqlDataAdapter("select distinct xtype from sysobjects", conn);
adapter.Fill(ds, "xtype");
conn.Close();

dt = ds.Tables["xtype"];

for (int i = 0; i < dt.Rows.Count; i++)
{
p1TextBox.AutoCompleteCustomSource.Add(dt.Rows[i][0].ToString());
}
}
mister55 2009-06-15
  • 打赏
  • 举报
回复
ContextMenuStrip显示出来之后textbox就失去焦点了,不能再输入了,把焦点放回来之后,ContextMenuStrip就没了
walkghost 2009-06-15
  • 打赏
  • 举报
回复
哈哈,以前写的代码连 SqlDataReader都没close。好呆痴啊。
lovvver 2009-06-15
  • 打赏
  • 举报
回复
TextBox有自动提示/完成功能,不过不是很强大。
关于自动提示/完成功能,我以前做过,你只要给TextBox增加一个DataSource,根据输入文字自动匹配。。。
walkghost 2009-06-15
  • 打赏
  • 举报
回复
记得去年前做过一个HIS,里面查询病人信息的时候用到了这个。。。。
combobox里输入数据,然后去查信息。

以前写的代码:


private void comboBox1_TextChanged(object sender, EventArgs e)
{


SqlConnection sqlconn = new SqlConnection(MyInfo.conn);

SqlCommand cmd = new SqlCommand("select name,sex,birthday,sid from Patient where name like'" + comboBox1.Text.ToString().Trim() + "%'", sqlconn);
sqlconn.Open();
SqlDataReader read;
read = cmd.ExecuteReader();
while (read.Read())
{

comboBox1.Items.Add((string)read[0].ToString() + "," + (string)read[1] + "," + (string)read[2] + "," + (string)read[3]);


}
sqlconn.Close();


angel6709 2009-06-15
  • 打赏
  • 举报
回复
txt.ContextMenuStrip.Show(位置);
mister55 2009-06-15
  • 打赏
  • 举报
回复
咋样让ContextMenuStrip显示出啦?
angel6709 2009-06-15
  • 打赏
  • 举报
回复
先加一个ContextMenuStrip,绑定到textbox的ContextMenuStrip,把所有提交的数据存到一个List中,再次输入的时候,在TextChanged事件中ForEach一下List看是否Indexof TextBox的text,如果是就把它放到ContextMenuStrip。如果ContextMenuStrip中有就让他显示
angel6709 2009-06-15
  • 打赏
  • 举报
回复
textbox的ContextMenuStrip
mister55 2009-06-15
  • 打赏
  • 举报
回复
我的是c# ,winform,不是web
yzy8788 2009-06-15
  • 打赏
  • 举报
回复
貌似.net的ajax能实现这个功能吧?
一个特别一点的TextBox
angel6709 2009-06-15
  • 打赏
  • 举报
回复
把所有提交的数据存到一个List中,再次输入的时候,在TextChanged事件中ForEach一下List看是否Indexof TextBox的text,如果是就让他显示出来。
mister55 2009-06-15
  • 打赏
  • 举报
回复
能举个例子吗?在c# 中
加载更多回复(4)

110,502

社区成员

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

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

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