是否可以更改Winforms组合框以禁用键入?

Joa*_*nge 65 .net c# winforms

这样它只允许选择已经存在的项目,但不允许在其中键入/编辑文本?

Sha*_*mer 130

设置ComboBox.DropDownStyleComboBoxStyle.DropDownList.


tey*_*non 7

在尝试了ShaneFulmer的回答之后,我发现下拉的样式已经改变了.这对我来说是个问题,显然没有好办法改变它.(背景颜色实际上并没有改变它.)

我最后添加了一个按键处理程序来防止添加文本.

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

  • 为什么这实际上会阻止添加文本? (2认同)
  • @AugustWilliams 在将事件发送到操作系统进行处理之前,它会将事件标记为已处理。请参阅 https://msdn.microsoft.com/en-us/library/system.windows.forms.keypresseventargs.handled(v=vs.110).aspx (2认同)
  • 请注意,这并不妨碍用户(例如)通过右键单击和粘贴等修改 ComboBox 内容。鼠标输入和其他修改途径必须单独涵盖。 (2认同)