1

我处于一种情况,我想知道这是否可能。

我想更改 ListBox 控件的 Items 取决于 TextBox 值。

意味着当我更改文本框值时,ListBox 的列表项会异步更改(无需按下按钮或其他东西)。

可能吗?如果可能的话,请指导我一些参考资料、教程或其他东西。

4

3 回答 3

1

没有完全得到你需要的东西,但我希望下面的案例对你有所帮助;
案例 1:如果您有一个包含多个项目的列表框,并且您希望选择与文本框中的文本匹配的项目。如果是这种情况,下面的代码应该可以完成这项工作;

    private void textBox1_TextChanged(object sender, EventArgs e)
    {
        if (textBox1.TextLength >= 1)
        {
            int index = listBox1.FindString(textBox1.Text);//Search any items that match Textbox's text.
            listBox1.SelectedIndex = index;//Highlight the match
        }
        else
        {
            listBox1.SelectedIndex = 0;
        }
    }

将上面的代码添加到文本框的 TextChangedEvent 中,并确保将代码中的控件重命名为您拥有的控件。如果不是这种情况,请参见下面的;

案例 2:您有一个文本框,并且您想将文本框的文本添加到列表框。关于我想告诉您的更多内容,下面的代码假定当您在文本框聚焦时按下Enter 键时,它是文本(如果any) 应该添加到列表框中。在文本框的 KeyDownEvent 中添加下面的代码,并确保重命名控件。如果是这种情况,下面的代码会对您有所帮助;

    private void textBox1_KeyDown(object sender, KeyEventArgs e)
    {
        string item = textBox1.Text;
        if (textBox1.Text.Length >= 1)
        {
            if (e.KeyCode == Keys.Enter)//If Enter key is pressed while textbox is focused.
            {
                listBox1.Items.Add(item);
            }
        }
    }

希望这对您有所帮助。

于 2013-08-31T07:18:33.530 回答
0

我希望下面的代码对你有帮助:

protected void TextBox1_TextChanged(object sender, EventArgs e)
{

    if(TextBox1.Text == "One")
        listBox1.Items.Add("One");

    if(TextBox1.Text == "two")
        listBox1.Items.Add("two");

}
于 2013-08-31T06:56:26.383 回答
0

你不必这样做异步。只需使用 TextBox.TextChanged-Event。

于 2013-08-31T07:14:51.233 回答