c# - 有一个不允许自定义文本的自动完成组合框

标签 c# winforms

C# WinForms: 我使用了具有这些属性的组合框: DropDownStyle: 下拉 AutoCompleteSource:ListItems 自动完成模式:建议追加

现在当我输入组合框时,它会从其项目列表中建议项目。很好。但问题是我不希望能够键入任何我想要的内容,我只想能够从其列表中的有效项目中进行键入。我该如何修复这部分?

谢谢。

最佳答案

您必须使用您的值填充Items 列表(手动或通过数据绑定(bind)),然后将DropDownStyle 设置为DropDownList .

组合框看起来不像文本框,但当它有焦点时,在其中输入内容会自动从项目列表中选择最佳匹配项。

(这是将组合框设置为不允许自定义文本的推荐方法。)

或者,如果您希望样式为 DropDown,请捕获控件的 KeyPress 事件,然后快速检查控件的文本加上 e.KeyChar,如果在列表中找不到,则设置 e.Handled = True。这将阻止所有会产生不在列表中的单词的按键。

关于c# - 有一个不允许自定义文本的自动完成组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10637582/

相关文章:

c# - Numericupdown 鼠标滚轮事件将 decimal 增加多于一个增量

c# - 这个 switch 和 while 循环可以在 C# 中简化吗?

c# - 从另一个窗体调用方法c#

asp.net - MessageBox.Show() 在 ASP.NET 中不起作用

c# - 用户操作后从用户控件返回值

c# - 如何让 TabControl 使用其父级的整个宽度?

c# - 如何获取在 C# 中作为参数传递的表达式的字符串表示形式?

c# - 如何使用 MVC3 Razor 格式化 DateTime 属性?

c# - C# 的正态性测试?

c# - 将字符串转换为日期