我目前正在一个需要管理城市及其邮政编码的项目中工作。因此,我创建了一个休闲对象:
class Place
{
Guid Id { get; set; }
string Name { get; set; }
int ZipCode { get; set; }
... further fields
}
并填充List<Place>
个Place
。现在我有一个Textbox
,我可以输入城市名称或邮政编码。在这两种情况下,我想获得一个与输入的输入匹配的建议列表,如此
示例:input =&#34; 1234&#34;或&#34;城市&#34;
如果我选择此建议列表中的某个项目,我希望将相关的Place
作为返回值。如何使用WindowsFormsApplication在C#中实现此功能?
答案 0 :(得分:0)
您所问的不是一个简单或单一的问题。我想你可以在TextBox下面有一个隐藏的ListBox,用户将在其中输入文字。
现在TextBox有一个名为OnTextChanged的事件。每次文本发生变化时都会触发此事件。这意味着用户在相应的TextBox中添加或删除字符时会超时触发此事件。
您可以使用此事件过滤列表以显示在ListBox中。
像这样的东西
//Imagine the TextBox ID as CityZipTextBox and ListBox ID as CityZipSuggestionsListBox
protected override void OnTextChanged(EventArgs e)
{
string txtCityZip = CityZipTextBox.Text;
List<Place> suggestedPlaces = filterCode;//Code to filter the full list using the TextBox content
CityZipSuggestionsListBox.DataSource = suggestedPlaces;
}
这有帮助吗?