如何在.NET中使ComboBox不可编辑?

Cor*_*son 196 .net c# combobox winforms

我希望有一个"仅限选择" ComboBox,它提供了供用户选择的项目列表.应在ComboBox控件的文本部分禁用键入.

我最初的谷歌搜索引发了一个过于复杂,误导的建议来捕捉KeyPress事件.

Cor*_*son 363

若要使ComboBox的文本部分不可编辑,请将DropDownStyle属性设置为"DropDownList".ComboBox现在基本上只为用户选择.您可以在Visual Studio设计器中执行此操作,也可以在C#中执行此操作:

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
Run Code Online (Sandbox Code Playgroud)

链接到MSDN上ComboBox DropDownStyle属性的文档.

  • 有一点要记住这样做意味着你不能再编程地更新`Text`属性,用它来显示一个使用`ComboBox.SelectedIndex = -1的默认消息;` (8认同)
  • 如何避免灰色外观? (5认同)
  • @AndersLindén 将属性 FlatStyle 设置为 Flat。 (2认同)

inv*_*igo 63

要添加Visual Studio GUI引用,可以DropDownStyle在所选ComboBox的"属性"下找到选项:

在此输入图像描述

这将自动将第一个答案中提到的行添加到Form.Designer.cs中InitializeComponent(),如下所示:

this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
Run Code Online (Sandbox Code Playgroud)


小智 32

继续使用ComboBox并从属性窗口中搜索DropDropStyle属性,然后选择DropDownList.