You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 02:36:04