需要继承combobox,重写onpaint。不管enabled为何值,外观都一样
public class MyCombo : ComboBox
{
protected override Onpaint(e)
{
base.OnPaint(e);
// 重写控件绘制代码 在适当的位置绘制输入框和下拉按钮
ComboBoxRenderer.DrawTextBox(...);
ComboBoxRenderer.DrawDropDownButton(...);
}
}
代码直接敲的,估计有错。大概思路是这样的。
不要设置enabled=false,设readonly=true,这个可以满足你的需求!
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;
Enabled = false 时控件就是灰色。改背景颜色也显示不出来。原有控件不能实现你的需求。