Readonly ComboBox en WinForms
Pregunta
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 su desactivación dificulta la legibilidad del control (además de impedir la selección del usuario).
Solución
Establezca DropDownStyle en " DropDownList "
Otros consejos
Establezca la propiedad ComboBox.DropDownStyle en ComboBoxStyle.DropDownList.
Otra forma sencilla de hacerlo.
private void combobox1_KeyPress(object sender, KeyPressEventArgs e)
{
e.Handled = true;
}
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"});
Intenta usar un DropDownListbox
Mi requisito: una vez que el usuario proporciona una entrada a través del cuadro combinado, no puede cambiar el valor antes de enviarlo. Sólo pueden leer ese valor.
Según mi requerimiento, hago lo siguiente.
1) Obtenga información del usuario a través del cuadro combinado.
2) Copie el valor del cuadro combinado en un cuadro de texto (que es de solo lectura e invisible).
3) Falso la visibilidad del cuadro combinado.
4) Verdadera la visibilidad del cuadro de texto de solo lectura.
Haz esto con los eventos.