Set the ComboBox 'Draw Mode' to OwnerDrawFixed and then add this DrawItem event
Colouring Text
private: System::Void cmbMyComboBox_DrawItem(System::Object^ sender, System::Windows::Forms::DrawItemEventArgs^ e)
{
e->DrawBackground();
if (e->Index >= 0)
{
ComboBox ^ClickedComboBox = dynamic_cast<ComboBox^>(sender);
String ^text = Convert::ToString(ClickedComboBox->Items[e->Index]);
System::Drawing::Font ^Font1 = ClickedComboBox->Font;
System::Drawing::Brush ^Brush1;
if (e->Index == 0)
Brush1 = Brushes::Red;
else
Brush1 = Brushes::Green;
e->Graphics->DrawString(text, Font1, Brush1, Convert::ToSingle(e->Bounds.X), Convert::ToSingle(e->Bounds.Y));
}
}
Colouring The Background Of Items
private: System::Void cmbMyComboBox_DrawItem(System::Object^ sender, System::Windows::Forms::DrawItemEventArgs^ e)
{
try
{
//e->DrawBackground();
if (e.Index == combo.SelectedIndex)
e->Graphics->FillRectangle(gcnew SolidBrush(Color::Gray), e->Bounds);
else
e->Graphics->FillRectangle(gcnew SolidBrush(Color::White), e->Bounds);
}
}
Feel free to comment if you can add help to this page or point out issues and solutions you have found. I do not provide support on this site, if you need help with a problem head over to stack overflow.