如何禁用c#中组合框中元素的编辑?

Mob*_*bin 149 c# combobox winforms

我在ComboBox中有一些元素(带有C#的WinForms).我希望他们的内容是静态的,以便用户在运行应用程序时无法更改内部的值.我也不希望用户向ComboBox添加新值

Dan*_*ker 290

使用ComboStyle属性:

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

  • 这也可以在设计器的属性窗口中设置. (35认同)
  • 使用最新版本,您可以使用`combo.Properties.TextEditStyle = DisableTextEditor` (3认同)

Isu*_*uru 21

这是另一种方法,我使用的,因为改变DropDownSyleDropDownList使它看起来3D,有时它只是普通的难看.

您可以通过KeyPress像这样处理ComboBox 的事件来阻止用户输入.

private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e)
{
      e.Handled = true;
}
Run Code Online (Sandbox Code Playgroud)

  • 您可以在设计师FlatStyle :)中更改其外观 (4认同)
  • @StinkyCat这不会改变弹出列表的外观,只改变窗体中的控件. (3认同)
  • 好的,要删除`粘贴',你必须创建假的空上下文菜单并将其分配给ComboBox. (3认同)

小智 10

您可以将属性中的 DropDownStyle 更改为 DropDownList。这不会显示用于过滤器的文本框。

DropDownStyle 属性
(截图由FUSION CHA0S提供。)