C# 更改禁用组合框的前景色

C# 更改禁用组合框的前景色,c#,.net,winforms,combobox,colors,C#,.net,Winforms,Combobox,Colors,我需要一个组合框中的黑色前景色。有可能吗?你只需要说 combobox1.ForeColor = Color.FromName("Black"); 不管控件是否被禁用,它都应该更改前景色。不确定您的应用程序是Winforms还是WPF。下面给出的代码在WPF应用程序中工作 combo1.Items.Add("Item 1"); combo1.Items.Add("Item 2"); combo1.SelectedIndex = 0; combo1.Foregro

我需要一个组合框中的黑色前景色。有可能吗?

你只需要说

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

不管控件是否被禁用,它都应该更改前景色。

不确定您的应用程序是Winforms还是WPF。下面给出的代码在WPF应用程序中工作

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

在我的XAML中,我添加了一个组合框,并将其IsEnabled属性设置为“false”,然后在后面的代码中,我使用了上面给出的代码,它确实可以工作


HTH

组合框1.背景色=彩色.黑色

我在过去搜索过有关这方面的信息,据我所知,最好的解决方案是将组合框的DrawMode更改为OwnerDrawFixed或OwnerDrawVariable,然后在组合框的DrawItem事件中编写自己的绘图代码


我发现这一点更详细。希望有帮助。

我过去对文本框使用的一个“hack”是保持控件处于启用状态,但捕获“OnFocus”事件并立即将焦点设置为表单上的其他对象,最好是标签,因为它不会显示为选中状态。我认为这也适用于组合框。

不,这不起作用:试用:comboBox1.Enabled=false;comboBox1.SelectedIndex=0;comboBox1.ForeColor=Color.FromName(“红色”);看来我错了。我创建了一个快速示例应用程序来说明这一点。我找到的最佳解决方案是,您可以将文本加粗,以使灰色对灰色更具可读性。示例应用程序的zip位于此处:阅读问题。这是前景色,不是背景色。这可能会在使用tab键单步通过控件时造成一些问题