private static ProfessionalColorTable GetColorTable(ToolStripComboBox.ToolStripComboBoxControl toolStripComboBoxControl)
 {
     if (toolStripComboBoxControl != null)
     {
         return(toolStripComboBoxControl.ColorTable);
     }
     return(ProfessionalColors.ColorTable);
 }
 private static bool UseBaseAdapter(ComboBox comboBox)
 {
     ToolStripComboBox.ToolStripComboBoxControl control = comboBox as ToolStripComboBox.ToolStripComboBoxControl;
     if ((control != null) && (control.Owner.Renderer is ToolStripProfessionalRenderer))
     {
         return(false);
     }
     return(true);
 }
                protected override void DrawFlatComboDropDown(ComboBox comboBox, Graphics g, Rectangle dropDownRect)
                {
                    Brush brush5;
                    Point point;

                    if (UseBaseAdapter(comboBox))
                    {
                        base.DrawFlatComboDropDown(comboBox, g, dropDownRect);
                        return;
                    }
                    if (!comboBox.Enabled || !ToolStripManager.VisualStylesEnabled)
                    {
                        g.FillRectangle(SystemBrushes.Control, dropDownRect);
                    }
                    else
                    {
                        ToolStripComboBox.ToolStripComboBoxControl toolStripComboBoxControl = comboBox as ToolStripComboBox.ToolStripComboBoxControl;
                        ProfessionalColorTable colorTable = GetColorTable(toolStripComboBoxControl);
                        if (!comboBox.DroppedDown)
                        {
                            if (comboBox.ContainsFocus || comboBox.MouseIsOver)
                            {
                                using (Brush brush = new LinearGradientBrush(dropDownRect, colorTable.ComboBoxButtonSelectedGradientBegin, colorTable.ComboBoxButtonSelectedGradientEnd, LinearGradientMode.Vertical))
                                {
                                    g.FillRectangle(brush, dropDownRect);
                                    goto Label_0114;
                                }
                            }
                            if (toolStripComboBoxControl.Owner.IsOnOverflow)
                            {
                                using (Brush brush2 = new SolidBrush(colorTable.ComboBoxButtonOnOverflow))
                                {
                                    g.FillRectangle(brush2, dropDownRect);
                                    goto Label_0114;
                                }
                            }
                            using (Brush brush3 = new LinearGradientBrush(dropDownRect, colorTable.ComboBoxButtonGradientBegin, colorTable.ComboBoxButtonGradientEnd, LinearGradientMode.Vertical))
                            {
                                g.FillRectangle(brush3, dropDownRect);
                                goto Label_0114;
                            }
                        }
                        using (Brush brush4 = new LinearGradientBrush(dropDownRect, colorTable.ComboBoxButtonPressedGradientBegin, colorTable.ComboBoxButtonPressedGradientEnd, LinearGradientMode.Vertical))
                        {
                            g.FillRectangle(brush4, dropDownRect);
                        }
                    }
Label_0114:
                    brush5 = comboBox.Enabled ? SystemBrushes.ControlText : SystemBrushes.GrayText;
                    point  = new Point(dropDownRect.Left + (dropDownRect.Width / 2), dropDownRect.Top + (dropDownRect.Height / 2))
                    {
                        X = point.X + (dropDownRect.Width % 2)
                    };
                    Point[] points = new Point[] { new Point(point.X - 2, point.Y - 1), new Point(point.X + 3, point.Y - 1), new Point(point.X, point.Y + 2) };
                    g.FillPolygon(brush5, points);
                }