C# 重写winform的comboBox的后,如何修改其自带edit背景色
时间: 2024-01-21 18:17:03 浏览: 119
要修改ComboBox自带的Edit控件的背景色,可以通过继承ComboBox并重写CreateParams属性来实现。具体步骤如下:
1. 创建一个新的类,继承自ComboBox。
```
public class MyComboBox : ComboBox
{
//TODO: 重写CreateParams属性
}
```
2. 在重写的CreateParams属性中,设置自带Edit控件的背景色。
```
protected override CreateParams CreateParams
{
get
{
CreateParams cp = base.CreateParams;
cp.ExStyle |= 0x020; //使ComboBox支持透明背景
cp.ExStyle &= ~0x100000; //去掉ComboBox的3D边框
cp.Style &= ~0x3; //去掉ComboBox的边框
cp.Style |= 0x2; //使ComboBox支持下拉列表
cp.ClassName = "ComboBoxEx32"; //使ComboBox支持透明背景
cp.GripStyle = System.Windows.Forms.ToolStripGripStyle.Hidden; //隐藏下拉箭头
cp.BackColor = Color.White; //自带Edit控件的背景色
return cp;
}
}
```
其中,cp.BackColor = Color.White; 就是设置自带Edit控件的背景色为白色。你可以根据需要自行修改。
3. 在窗体中使用MyComboBox控件。
```
MyComboBox myComboBox1 = new MyComboBox();
this.Controls.Add(myComboBox1);
myComboBox1.Location = new System.Drawing.Point(50, 50);
myComboBox1.Size = new System.Drawing.Size(200, 30);
```
这样,就可以在窗体中使用自定义的MyComboBox控件,并修改了其自带Edit控件的背景色。
阅读全文