2009-04-21 18 views

risposta

4

Ho cercato in giro per le informazioni in passato su questo, e per quanto ne so, la soluzione migliore è quella di cambiare il DrawMode della casella combinata a OwnerDrawFixed o OwnerDrawVariable e quindi scrivere la proprio codice di disegno nell'evento DrawItem della casella combinata.

ho trovato questo article che va in modo molto più dettagliato su di esso. Spero che sia d'aiuto.

-2

Tutto quello che dovete fare è dire

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

Non importa se il controllo è disattivato o non, dovrebbe cambiare il colore di primo piano.

+0

No, non ha funzionato: provato con: comboBox1.Enabled = false; comboBox1.SelectedIndex = 0; comboBox1.ForeColor = Color.FromName ("Rosso"); – Sreedhar

+0

Sembra che mi sbagliavo. Ho creato un'applicazione di esempio rapida che mostra questo. La soluzione migliore che ho trovato è che puoi mettere in grassetto il testo per rendere più leggibile il grigio sul grigio. La cerniera del l'applicazione di esempio si trova qui: http://www.yousendit.com/download/dVlwTXRkUnErV3hMWEE9PQ –

-1

Non sono sicuro se la vostra applicazione è WinForms o WPF. Il codice riportato di seguito funziona in un'app WPF.

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


Nel mio XAML ho aggiunto una casella combinata e impostarne la proprietà IsEnabled su "false", quindi nel codice dietro ho usato il codice di cui sopra e funziona.

HTH

-3

comboBox1.BackColor = Color.Black;

+0

leggere la domanda. È * forecolor *, non backcolor. – CesarGon

4

Un "trucco" che ho utilizzato in passato per le caselle di testo è di lasciare il controllo abilitato, ma catturare l'evento "OnFocus" e impostare immediatamente lo stato attivo su qualche altro oggetto sul modulo, preferibilmente un'etichetta poiché non lo fa si mostra come selezionato. Penso che questo dovrebbe funzionare anche per i combobox.

+0

questo potrebbe causare qualche problema quando si utilizza il tasto tab per scorrere i controlli – Breeze

Problemi correlati