组合框我有点问题。
当有值时,我需要将组合框的背景颜色设置为红色。
我正在使用以下代码:
if (!string.IsNullOrEmpty(ComboTransmis.Text))
ComboTransmis.BackColor = Color.OrangeRed;
else
ComboTransmis.BackColor = Color.White;
但结果如下:
只有背景颜色的文字,我需要所有元素都有它,我不知道怎么做。
如果有人有想法?
提前谢谢
答案 0 :(得分:1)
你需要自己修改组合框来实现这个然而你会失去3d风格并且平坦。
基于this回答:
将组合框DrawMode属性更改为OwnerDrawFixed,并处理 DrawItem事件:
private void ComboTransmis_DrawItem(object sender, DrawItemEventArgs e)
{
int index = e.Index >= 0 ? e.Index : 0;
var brush = Brushes.Black;
e.DrawBackground();
e.Graphics.DrawString(ComboTransmis.Items[index].ToString(), e.Font, brush, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}