【发布时间】:2016-10-16 10:07:13
【问题描述】:
我想为组合框中的每个 框(不是文本项)着色,它们有不同的项目,例如:山有它的框红色,大海有它的框蓝色等。我已经尝试过,但我尝试过的颜色真的很混乱
我需要突出显示每个组合框项目以显示其预期颜色,当单击该组合框时它没有显示其预期颜色
代码如下
private void cmbRegion_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
string text = ((ComboBox)sender).Items[e.Index].ToString();
Brush brush;
if (text.Equals("Mountain"))
{
brush = Brushes.Black;
cmbRegion.BackColor = Color.Red;
}
else if (text.Equals("Sea"))
{
brush = Brushes.Black;
cmbRegion.BackColor = Color.Blue;
}
else
{
brush = Brushes.Black;
cmbRegion.BackColor = Color.White;
}
// Draw the text
e.Graphics.DrawString(text, ((Control)sender).Font, brush, e.Bounds.X, e.Bounds.Y);
}
可以吗..?
【问题讨论】:
-
如果
cmbRegion是你的ComboBox那么cmbRuang是什么? -
ups,我的错误。现已编辑。
-
你确实设置了DrawMode??您在调试器中尝试了什么?
-
e.DrawBackground();仅绘制具有白色或高亮背景的项目。你需要自己画背景。
标签: c# winforms colors combobox