2009-04-21 27 views

Respuesta

4

He buscado alrededor para obtener información en el pasado acerca de esto, y por lo que puedo decir, la mejor solución es cambiar el DrawMode del cuadro combinado a OwnerDrawFixed o OwnerDrawVariable y luego escribir su poseer código de dibujo en el DrawItem evento del cuadro combinado.

Encontré este article que entra en mucho más detalle al respecto. Espero eso ayude.

-2

Todo lo que necesita hacer es decir

combobox1.ForeColor = Color.FromName("Black"); 

No importa si el control está desactivado o no, se debe cambiar el color de primer plano.

+0

No, esto no funcionó: intentado con: comboBox1.Enabled = false; comboBox1.SelectedIndex = 0; comboBox1.ForeColor = Color.FromName ("Rojo"); – Sreedhar

+0

Parece que estaba equivocado. Creé una aplicación de ejemplo rápida que muestra esto. La mejor solución que he encontrado es que puedes poner el texto en negrita para que el gris en gris sea más legible. El archivo comprimido de la aplicación de ejemplo se encuentra aquí: http://www.yousendit.com/download/dVlwTXRkUnErV3hMWEE9PQ –

-1

No estoy seguro si su aplicación es Winforms o WPF. El código que figura a continuación funciona en una aplicación WPF.

combo1.Items.Add("Item 1"); 
    combo1.Items.Add("Item 2"); 
    combo1.SelectedIndex = 0; 
    combo1.Foreground = Brushes.Black; 


En mi XAML que añade un cuadro combinado y establezca su propiedad IsEnabled a "falso" y luego en el código detrás utilicé el código dado anteriormente y que hace el trabajo.

HTH

-3

comboBox1.BackColor = Color.Black;

+0

Lea la pregunta. Es * forecolor *, no backcolor. – CesarGon

4

Un "truco" que he utilizado en el pasado para cuadros de texto es dejar el control habilitado, pero capturar el evento "OnFocus" e inmediatamente establecer el foco a algún otro objeto en el formulario, preferiblemente una etiqueta ya que no lo hace No se muestra como seleccionado. Creo que esto debería funcionar también para las cajas combinadas.

+0

esto podría causar algunos problemas al usar la tecla de tabulación para pasar por los controles – Breeze

Cuestiones relacionadas