在列表框中搜索一个项目,其中要搜索的项目在文本框中,没有按钮,单击c#
本文关键字:搜索 项目 文本 按钮 单击 一个 列表 | 更新日期: 2023-09-27 18:01:50
假设我有一个列表框,里面已经有项目,假设这些项目是
Ant
Adam
Ball
Cat
Dog
Ear
Frog
列表框上方有一个文本框提示用户搜索
说,如果我在文本框中输入和,那么它必须指向亚当,如果我删除和,那么它必须指向狗并且不能使用按钮来搜索
同样,如果我点击列表框中的cat,那么列表框旁边就会出现一个文本框,上面写着Hi i 'm cat
我看到它不正确的使用文本框显示嗨,我是猫我应该用什么来显示有关所选项目的详细信息
发现解决方案自己
private void textBox1_TextChanged(object sender, EventArgs e)
{
int index = listBox1.FindString(textBox1.Text, -1);
if (index != -1)
{
listBox1.SetSelected(index, true);
}
}
你需要在TextBox的" TextChanged
"事件上更新你的列表框。
获取在此事件内的文本框中写入的文本,迭代listbox的项并执行Text.Contains
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
var current = TextBox1.Text;
foreach (ListItem item in ListBox1.Items)
{
if (item.Text.ToLower().Contains(current.ToLower()))
item.Selected = true;
}
}
这是抓取列表框中选中的项目的方法:
protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if(ListBox1.SelectedItem!=null)
{
Label1.Text = ListBox1.SelectedItem.Text;
//or you can dynamically create a label and add it to the page
Label lbl = new Label();
lbl.Text=ListBox1.SelectedItem.Text;
MyContainer.Controls.Add(lbl);
//where MyContainer is any server side container, HtmlContainerControl
//or HtmlControl
}
}
必须是一个列表框吗?如果使用组合框,则可以使用自动完成功能。例如,将AutoCompleteMode设置为"建议追加",将AutoCompleteSource设置为"列表项"。列表框没有内置这个功能,所以你必须自己实现它。
另外,对于它旁边的标签或文本框来说,"Hi, I'm Cat"..之类的. .使用SelectedIndexChanged事件。在这里你可以这样做:
myLabel.Text = "Hi, I'm " + myComboBox.SelectedItem.ToString()