我处于一种情况,我想知道这是否可能。
我想更改 ListBox 控件的 Items 取决于 TextBox 值。
意味着当我更改文本框值时,ListBox 的列表项会异步更改(无需按下按钮或其他东西)。
可能吗?如果可能的话,请指导我一些参考资料、教程或其他东西。
没有完全得到你需要的东西,但我希望下面的案例对你有所帮助;
案例 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);
}
}
}
希望这对您有所帮助。
我希望下面的代码对你有帮助:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
if(TextBox1.Text == "One")
listBox1.Items.Add("One");
if(TextBox1.Text == "two")
listBox1.Items.Add("two");
}
你不必这样做异步。只需使用 TextBox.TextChanged-Event。