在列表框中搜索一个项目,其中要搜索的项目在文本框中,没有按钮,单击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);
        }
    }

在列表框中搜索一个项目,其中要搜索的项目在文本框中,没有按钮,单击c#

你需要在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()