2010-06-17 59 views
36

Tengo un problema al establecer la propiedad del combo de modo que solo el usuario pueda seleccionar los valores de los elementos determinados, pero no puedo escribir en el cuadro combinado.¿Cómo configuro el combobox de solo lectura o el usuario no puede escribir en un cuadro combinado solo puede seleccionar los elementos especificados?

¿Cómo puedo hacerlo en C#?

+0

Esta pregunta se ha hecho antes. Por favor, mira aquí: http://stackoverflow.com/questions/85702/how-can-i-make-a-combobox-non-editable-in-net – Peter

Respuesta

94

Simplemente cambie el DropDownStyle al . O si quiere que se lea completamente solo, puede configurar Enabled = false, o si no le gusta el aspecto de eso, a veces tengo dos controles, un cuadro de texto de solo lectura y un cuadro combinado y luego ocultar el combo y mostrar el cuadro de texto si debería estar completamente Readonly y viceversa.

+0

Pero ten en cuenta: ¡solo! = Deshabilitado. –

+0

@Henk: Sí, es por eso que dije "si no te gusta el aspecto de eso ..." ya que ese suele ser el problema principal que las personas encuentran al deshabilitar un control en lugar de configurarlo de forma tan simple. –

+0

thanx buddy era simple pero si no sabes sobre esto es un misterio para ti, gracias – Badr

13

Creo que desea cambiar la configuración llamada "DropDownStyle" para que sea "DropDownList".

4

La solución es cambiar la propiedad DropDownStyle a DropDownList. Ayudará.

12

En el controlador de eventos de pulsación de tecla:

e.Handled = true; 
+0

¡La mejor solución! Gracias –

+0

Eso no impide eliminar un texto seleccionado en el cuadro combinado. – ajeh

10

Hacer el DropDownStyle a DROPDOWNLIST

stateComboBox.DropDownStyle = ComboBoxStyle.DropDownList; 
3

Prueba esto:

private void comboBox1_KeyDown(object sender, KeyEventArgs e) 
    { 
     // comboBox1 is readonly 
     e.SuppressKeyPress = true; 
    } 
Cuestiones relacionadas