我有一个包含国家/地区名称的列表框。我在VS2015(C#)中使用Windows窗体
通过键入在listBox中选择名称时,它只允许一个字母。因此,如果我输入“A”,它将跳转到以“A”开头的第一个项目,但如果我按“As”,则列表框查看以“s”开头的项目。
我找到了这个组合框和文本框的答案:
Selecting an item in comboBox by typing
但看起来像listbox不支持AutoCompleteMode。
有什么解决方案吗?
答案 0 :(得分:1)
请考虑实施您自己的搜索方法。 ListBox不支持设计所需的功能。无论如何,您可以为TextBox准备一个TextChanged事件的方法,该方法在搜索集合中的结果时。
答案 1 :(得分:0)
请检查一下:
答案 2 :(得分:0)
您应该使用带DropDownStyle.Simple的ComboBox。 ListBox从来没有打算拥有这个功能,强迫它这样做通常是浪费时间更好的花费。
您可能还想考虑第三方控件。例如,Telerik有DropDownList扩展了一个ComboBox,并使它完全按照你想要的方式做,并提供了如何做的选项。
答案 3 :(得分:0)
这是一些示例代码。将一个TextBox放在ListBox上方。适当地连接TextChanged事件,这应该模仿ComboBox的自动完成行为(例如)......
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
listBox1.Items.Add("Tom");
listBox1.Items.Add("Dick");
listBox1.Items.Add("Harry");
listBox1.Items.Add("Henry");
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
TextBox oTextBox = (TextBox)sender;
int iListIndex = oTextBox.TextLength == 0 ? -1 : listBox1.FindString(oTextBox.Text);
listBox1.SelectedIndex = iListIndex;
}
}