0

说我有一个已经存在项目的列表框,说这些项目是

Ant
Adam    
Ball
Cat
Dog
Ear
Frog

列表框上方有一个文本框提示用户搜索

说如果我在文本框广告中输入,那么它必须指向 Adam 如果我删除a那么它必须指向 Dog 并且不能使用按钮进行搜索

另外,如果我单击列表框中的项cat,然后在列表框旁边有一个文本框,上面写着Hi I'm 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);
        }
    }
4

2 回答 2

1

您需要在TextChangedTextBox 的 " " 事件上更新您的列表框。

获取在此事件内的文本框中写入的文本,遍历列表框的项目并执行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 
            }
        }
于 2013-03-03T08:22:47.287 回答
0

它必须是一个列表框吗?如果您改用 ComboBox,则可以使用自动完成功能。例如,将 AutoCompleteMode 设置为“SuggestAppend”,将 AutoCompleteSource 设置为“ListItems”。列表框没有内置该功能,因此您必须自己实现它。

此外,对于它旁边的标签或文本框来说,“嗨,我是猫”.. 或其他.. 使用 SelectedIndexChanged 事件。在那里你可以做这样的事情:

myLabel.Text = "Hi, I'm " + myComboBox.SelectedItem.ToString()

于 2013-03-03T08:22:36.013 回答