¿Cómo puedo hacer que un ComboBox no sea editable en .NET?

Quiero tener un ComboBox “solo selección” que proporciona una lista de elementos para que el usuario los seleccione. La escritura debe estar deshabilitada en la parte de texto del control ComboBox .

Mi búsqueda inicial de Google dio como resultado una sugerencia demasiado compleja y equivocada para capturar el evento KeyPress .

Para que la porción de texto de un ComboBox no sea editable, establezca la propiedad DropDownStyle en “DropDownList”. El ComboBox ahora es esencialmente select-only para el usuario. Puede hacer esto en el diseñador de Visual Studio o en C # de esta manera:

 stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList; 

Enlace a la documentación de la propiedad ComboBox DropDownStyle en MSDN.

Para agregar una referencia de Visual Studio GUI, puede encontrar las opciones de DropDownStyle en Propiedades del ComboBox seleccionado:

enter image description here

Lo cual agregará automáticamente la línea mencionada en la primera respuesta al Form.Designer.cs InitializeComponent() , así:

 this.comboBoxBatch.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; 

Permanezca en su ComboBox y busque la propiedad DropDropStyle desde la ventana de propiedades y luego seleccione DropDownList .

COMBOBOXID.DropDownStyle = ComboBoxStyle.DropDownList;

Para continuar mostrando datos en la entrada después de seleccionar, hágalo:

 VB.NET Private Sub ComboBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles ComboBox1.KeyPress e.Handled = True End Sub C# Private void ComboBox1_KeyPress(object sender, KeyPressEventArgs e) { e.Handled = true; }