如果用户正在输入的内容在项目列表中,如果它不存在,我希望我的组合框启用自动完成功能,我希望将它包括在我的列表中。
例如:
有这些项目的ComboBox:“摇滚,乡村,爵士”。如果用户开始输入“Ro.”组合框自动完成为“摇滚”。但是如果用户输入"Blues",我想将它添加到我的项目中。所以就像:“摇滚,乡村,爵士,蓝军”。
我怎么能这么做?
发布于 2015-06-25 18:58:39
您可以使用AutoCompleteMode和AutoCompleteSource进行自动完成。
comboBox1.AutoCompleteMode = AutoCompleteMode.Append;
comboBox1.AutoCompleteSource = AutoCompleteSource.ListItems;或者您可以在选择ComboBox之后通过Visual中的“属性面板”执行此操作。
用于向ComboBox中添加新项;
private void comboBox1_TextChanged(object sender, EventArgs e)
{
if (!comboBox1.Items.Contains(comboBox1.Text))
{
comboBox1.Items.Add(comboBox1.Text);
comboBox1.Items.RemoveAt(comboBox1.Items.Count - 2);
}
}发布于 2015-06-25 21:54:30
如果我使用MVVM进行此操作,我将从一个ComboBox开始,并对其进行适当的修改。
如果您在ComboBox中使用内置的DevExpress,您几乎可以免费获得它。只需用您想要自动完成的项填充下拉列表,然后设置以下选项:
如果您想变得更时尚,您可以编写一个服务来侦听用户当前在框中键入的内容,然后调整下拉项目列表以适应。下拉列表中与用户类型匹配的任何项都将自动显示。我将使用反应性扩展(RX)和Throttle来实现这一点,请参见:
https://stackoverflow.com/questions/31058402
复制相似问题