C# 组合框中其他颜色的第一项

C# 组合框中其他颜色的第一项,c#,winforms,colors,combobox,C#,Winforms,Colors,Combobox,我希望组合框中的第一项使用红色字体。我还希望组合框看起来像这样,而不是这样。我怎样才能做到这一点 //名为“DropdOnStyle”的属性将其设置为DropDownList,如下所示如果要更改组合框的外观,可以将DropDownStyle属性设置为DropDownList(这会导致更改组合框的行为;文本字段被锁定,无法写入) 下面是如何更改第一个项目的颜色 首先将combobox的DrawMode属性设置为OwnerDrawFixed(不幸的是,此更改会导致combobox的外观返回旧外观),

我希望组合框中的第一项使用红色字体。我还希望组合框看起来像这样,而不是这样。我怎样才能做到这一点


//名为“DropdOnStyle”的属性将其设置为DropDownList,如下所示

如果要更改组合框的外观,可以将DropDownStyle属性设置为DropDownList(这会导致更改组合框的行为;文本字段被锁定,无法写入)

下面是如何更改第一个项目的颜色

首先将combobox的DrawMode属性设置为OwnerDrawFixed(不幸的是,此更改会导致combobox的外观返回旧外观),并使用DrawItem事件

private void cmb_DrawItem(object sender, DrawItemEventArgs e)
{
    if (e.Index > -1)
    {
        e.DrawBackground();

        Brush brush = Brushes.Black;

        if (e.Index == 0)
        {
            brush = Brushes.Red;
        }

        e.Graphics.DrawString(((ComboBox)sender).Items[e.Index].ToString(), ((Control)sender).Font, brush, e.Bounds.X, e.Bounds.Y);
    }
}

是ASP.NET、WinForms还是其他什么?您是否看过
DrawItem
event。。?我尝试了第一个答案,但将其粘贴到DrawItem事件中时出错。最后一行的下一行:“当前上下文中不存在名称‘animals’”。但是如果我对该行进行注释,组合框的外观将是我不想要的。人们说您需要将DrawMode从正常模式更改为其他模式,这将使in看起来像那样=(代码是有效的,但是很遗憾,它像你说的那样改变了外观。没有办法解决这个问题吗?