0

アイテムがすでに存在するリストボックスがあるとします。

Ant
Adam    
Ball
Cat
Dog
Ear
Frog

リストボックスの上には、ユーザーに検索を促すテキストボックスがあります

たとえば、テキストボックス広告に入力し場合、Adam を指している必要があります。

また、リストボックスの項目猫をクリックすると、リストボックスの横にテキストボックスがあり、こんにちは私は猫です

テキストボックスを使用して、選択したアイテムの詳細に関する情報を表示するために使用するものを表示するのは正しくないことがわかりました

自分で解決策を見つけた

    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 を使用する場合は、AutoComplete 機能を使用できます。たとえば、AutoCompleteMode を 'SuggestAppend' に、AutoCompleteSource を 'ListItems' に設定します。リストボックスにはその機能が組み込まれていないため、自分で実装する必要があります。

また、その横にあるラベルまたはテキスト ボックスに「こんにちは、私は猫です」などと表示するには、SelectedIndexChanged イベントを使用します。そこでは、次のようなことができます:

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

于 2013-03-03T08:22:36.013 に答える