2009-04-21 22 views

回答

4

找遍周圍的信息,在這個過去的,而據我所知,最好的解決辦法是將組合框的DrawMode改變OwnerDrawFixedOwnerDrawVariable,然後寫你的在組合框的DrawItem事件中自己繪製代碼。

我發現這個article進入更多的細節。希望能幫助到你。

-2

所有你需要做的是說

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

如果控制被禁用不要緊與否,它應該改變前景色。

+0

沒有這個沒有工作: 嘗試: comboBox1.Enabled = false; comboBox1.SelectedIndex = 0; comboBox1.ForeColor = Color.FromName(「Red」); – Sreedhar 2009-04-21 07:13:11

+0

看來我錯了。我創建了一個快速的示例應用程序來顯示它。我發現的最佳解決方案是,您可以大膽地使文字變得更加可讀。示例應用程序的zip位於此處: http://www.yousendit.com/download/dVlwTXRkUnErV3hMWEE9PQ – 2009-04-21 17:29:45

-1

不知道您的應用程序是Winforms還是WPF。下面給出的代碼適用於WPF應用程序。

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


在我的XAML我加了一個組合框並設置其IsEnabled屬性爲「假」,那麼在後面的代碼我用上面給出的代碼和它的工作。

HTH

-3

comboBox1.BackColor = Color.Black;

+0

閱讀問題。它是* forecolor *,而不是背景色。 – CesarGon 2011-09-17 23:26:07

4

我以前用於文本框的「黑客」是讓控件啓用,但捕獲「OnFocus」事件並立即將焦點設置到窗體上的其他對象,最好是標籤,因爲它不會不顯示爲被選中。我認爲這也適用於組合框。

+0

這可能會導致一些麻煩,當使用Tab鍵來逐步控制 – Breeze 2017-03-16 14:19:31