C# winform combox控件 Enabled = false时背景颜色改变不了

求一简单的解决方法.请贴代码,尽量不要全是汉字叙述.如果非要重写怎么重写.代码...代码...代码...代码...代码...Enabled = false默认的背景颜色为灰色,我想要的是白色现在的效果我想要的效果
2026年09月24日 20:37
有4个网友回答
网友(1):

需要继承combobox,重写onpaint。不管enabled为何值,外观都一样
public class MyCombo : ComboBox
{
protected override Onpaint(e)

{
base.OnPaint(e);

// 重写控件绘制代码 在适当的位置绘制输入框和下拉按钮

ComboBoxRenderer.DrawTextBox(...);
ComboBoxRenderer.DrawDropDownButton(...);

}
}
代码直接敲的,估计有错。大概思路是这样的。

网友(2):

不要设置enabled=false,设readonly=true,这个可以满足你的需求!

网友(3):

comboBox1.Items.Add("1"); comboBox1.Items.Add("2"); comboBox1.Items.Add("3"); comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; comboBox1.BackColor = Color.Green; comboBox1.SelectedIndex = 0; comboBox1.Enabled = false;

网友(4):

Enabled = false 时控件就是灰色。改背景颜色也显示不出来。原有控件不能实现你的需求。