如何更改所有组合框元素上的组合框的背景颜色?
问题描述:
我对组合框有点问题。如何更改所有组合框元素上的组合框的背景颜色?
我需要将组合框的背景颜色设置为红色。
我用下面的代码:
if (!string.IsNullOrEmpty(ComboTransmis.Text))
ComboTransmis.BackColor = Color.OrangeRed;
else
ComboTransmis.BackColor = Color.White;
但结果是这样的:
只有具有背景色的文本,我需要的所有元素都与它我不知道该怎么做。
如果有人有想法?
预先感谢您
答
你需要自己修改组合框但是你失去了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();
}
+0
p.s.这个问题也许对你前进很有用:https://stackoverflow.com/questions/20812275/windows-form-combobox-custom-form-color :) –
我想,如果我理解正确的问题,你需要编写一个自定义控件来做到这一点。附:为了遍历表单中的每个组合框,您需要指定所有后续容器并遍历每个项目。 –
@MasterYoda它只是为这个 –
看看这个问题:https://stackoverflow.com/questions/6468024/how-to-change-combobox-backgound-color-not-just-the-drop-down-列表部分。你需要自己修改组合框来达到这个目的,但是你会失去3D风格并且变得平坦。 –