如何在C# Visual Studio的文本框中添加可选择的选项范围
C# 实现带内置可选列表文本框方案
WinForms 实现
直接使用原生TextBox控件的自动补全特性即可实现,操作步骤如下:
- 从工具箱拖拽
TextBox控件到窗体设计界面 - 在窗体初始化或
Load事件中添加如下配置代码:
// 定义内置选项列表 AutoCompleteStringCollection yearOptions = new AutoCompleteStringCollection(); yearOptions.AddRange(new string[] { "1年以下", "1-3年", "3-5年", "5-10年", "10年以上" }); // 绑定到TextBox控件 yourTextBox.AutoCompleteCustomSource = yearOptions; yourTextBox.AutoCompleteMode = AutoCompleteMode.Suggest; // 仅展示下拉建议列表,和参考效果一致 yourTextBox.AutoCompleteSource = AutoCompleteSource.CustomSource;
如果需要同时开启输入自动补全,将AutoCompleteMode改为SuggestAppend即可。
WPF 实现
有两种原生实现方案可选:
方案1:可编辑ComboBox(最简单无需额外依赖)
直接使用原生ComboBox控件,开启可编辑模式即可,XAML代码如下:
<ComboBox x:Name="ServiceYearsBox" IsEditable="True"> <ComboBoxItem>1年以下</ComboBoxItem> <ComboBoxItem>1-3年</ComboBoxItem> <ComboBoxItem>3-5年</ComboBoxItem> <ComboBoxItem>5-10年</ComboBoxItem> <ComboBoxItem>10年以上</ComboBoxItem> </ComboBox>
该方案支持用户手动输入内容,也可以下拉选择预设选项,符合需求。
方案2:AutoCompleteBox控件
需要先安装NuGet包System.Windows.Controls.Input.Toolkit,之后使用如下代码:
XAML部分:
<controls:AutoCompleteBox x:Name="ServiceYearsAutoBox" ItemsSource="{Binding YearOptions}" FilterMode="Contains" IsTextCompletionEnabled="True"/>
后台绑定代码:
public List<string> YearOptions { get; set; } = new List<string> { "1年以下", "1-3年", "3-5年", "5-10年", "10年以上" };
内容的提问来源于stack exchange,提问作者Sjon
相关产品推荐
相关产品推荐

