Winform ComboBox獨立繪製下拉選項的字體顏色

衆所周知,cbo1.ForeColor會同時改變cbo1.Text和下拉選項字體顏色。字體

獨立繪製下拉選項字體顏色,ForeColor 只對 cbo1.Text 顏色有效的辦法,示例:this

private void cb7_DrawItem(object sender, DrawItemEventArgs e)
{
    DrawCboItems(sender, e);
}

private void cb7_SelectedIndexChanged(object sender, EventArgs e)
{
    SetCboTextColor(sender);
}

private void SetCboTextColor(object sender)
{
    ComboBox cbx = sender as ComboBox;
    if (cbx.Text == "+")
        cbx.ForeColor = Color.Red;
    else
        cbx.ForeColor = Color.Black;
}

private void DrawCboItems(object sender, DrawItemEventArgs e)
{
    ComboBox cbo = sender as ComboBox;

    //初始化字體和背景色
    Pen fColor = new Pen(Color.Black);
    Pen bColor = new Pen(Color.White);

    switch (e.Index)
    {
     //下拉選項的索引   
case 1:   {   fColor = new Pen(Color.Red);   break;   } } e.Graphics.FillRectangle(bColor.Brush, e.Bounds); e.Graphics.DrawString((string)cbo.Items[e.Index], this.Font, fColor.Brush, e.Bounds); }
相關文章
相關標籤/搜索