2008-10-02 18 views
21

Estoy escribiendo una GUI en C#, Visual Studio 2008, usando Designer y WinForms. Tengo un control ComboBox, y me gustaría que solo permita seleccionar entre las opciones proporcionadas y no aceptar una cadena ingresada por el usuario. No parece tener una propiedad ReadOnly, y deshabilitarla dificulta la legibilidad del control (así como no permitir la selección del usuario).Readonly ComboBox en WinForms

+0

La propiedad DropDownStyle era lo que estaba buscando. No puedo creer que lo haya pasado por alto. –

+3

posible duplicado de [¿Cómo puedo hacer que un ComboBox no sea editable en .net?] (Http://stackoverflow.com/questions/85702/how-can-i-make-a-combobox-non-editable-in- net) – nawfal

Respuesta

46

Conjunto DropDownStyle a "DropDownList"

+1

Pero luego no puedes manipular programáticamente el combobox. – clamchoda

1

intentar usar un DropDownListBox

6

Establecer la propiedad ComboBox.DropDownStyle a ComboBoxStyle.DropDownList.

2

Use un código similar al siguiente para establecer las opciones permitidas y solo esas opciones.

comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; 
comboBox1.Items.AddRange(new object[] { 
    "One", 
    "Two", 
    "Three", 
    "Four"}); 
3

Otra manera simple de hacerlo.

private void combobox1_KeyPress(object sender, KeyPressEventArgs e) 
{ 
    e.Handled = true; 
} 
0

Mi requisito: una vez que el usuario da una entrada a través de cuadro combinado que no pueden cambiar el valor antes de enviarlo. Pueden leer solo ese valor.

Según mi requisito, hago las siguientes cosas.

1) Obtenga información del usuario a través del cuadro combinado.
2) Copie el valor de cuadro combinado a un cuadro de texto (que es de solo lectura e invisible).
3) False the visibility of combo-box.
4) Verdadero la visibilidad del cuadro de texto de solo lectura.

Haga esto con eventos.

Cuestiones relacionadas