正常情况下当选中某项时,该选项的字体会自动变白,但是我自定义的ComboBox却不变白,当选中选项的时候很难看清选项的内容.
如图:

public partial class DjtComboBox : ComboBox
{
public DjtComboBox()
{
InitializeComponent();
}
private void DjtComboBox_DrawItem(object sender, DrawItemEventArgs e)
{
e.DrawBackground();
//e.DrawFocusRectangle();
Brush myBrush = Brushes.Black;
// Brush myBrush = Brushes.Gray;
Brush myBrush2 = Brushes.White;
Font ft = new Font("宋体", 9f);
if (e.Index == -1)
{
return;
}
e.Graphics.DrawString(this.Items[e.Index].ToString(), ft, myBrush, e.Bounds, StringFormat.GenericDefault);
e.DrawFocusRectangle();
}
private void comboBox1_DrawItem(object sender, DrawItemEventArgs e)
{
if (e.Index < 0)
{
return;
}
e.DrawBackground();
e.DrawFocusRectangle();
e.Graphics.DrawString(comboBox1.Items[e.Index].ToString(), e.Font, new SolidBrush(e.ForeColor), e.Bounds.X, e.Bounds.Y + 3);
}
private void comboBox1_MouseMove(object sender, MouseEventArgs e)
{
this.ForeColor = Color.White;
}
private void comboBox1_MouseLeave(object sender, EventArgs e)
{
this.ForeColor = Color.Black;
}
}
------解决思路----------------------
private void comboBox1_MouseMove(object sender, MouseEventArgs e)
{
this.ForeColor = Color.White;
}
private void comboBox1_MouseLeave(object sender, EventArgs e)
{
this.ForeColor = Color.Black;
}
这两句不对吧
------解决思路----------------------
你用同一种颜色肯定是这样的
应该有e.ForeColor之类的属性吧
没有的话,没有的话,判断当前项目状态,选中赋值个其他颜色